Программа выдает ошибку unhashable type: set. Сам код программы предусматривает распознавание типа данных и добавления их в словарь
class TypeStatistics:
def __init__(self, arr):
self.arr, self.sl = arr, {}
def type_values(self):
for i in self.arr:
if i not in self.sl.keys():
self.sl[str(i.__class__.__name__)] = []
self.sl[str(i.__class__.__name__)].append(i)
else:
self.sl[str(i.__class__.__name__)].append(i)
print(self.sl)
arr = ['Hello', 'world', 42, 351, 273.15, {1, 2, 3}, 911.0]
ts = TypeStatistics(arr)
ts.type_values()
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
замените
if i not in self.sl.keys():
на
if str(i.__class__.__name__) not in self.sl.keys():
также можно ваш код немного уменьшить
class TypeStatistics:
def __init__(self, arr):
self.arr, self.sl = arr, {}
def type_values(self):
for i in self.arr:
name = str(i.__class__.__name__)
if name not in self.sl:
self.sl[name] = []
self.sl[name].append(i)
print(self.sl)
arr = ['Hello', 'world', 42, 351, 273.15, {1, 2, 3}, 911.0]
ts = TypeStatistics(arr)
ts.type_values()