#python #python-3.x #dictionary
#python #python-3.x #словарь
Вопрос:
Попытка добавить значения с плавающей запятой к тому же ключу в словаре типов defaultdic.
from collection import defaultdict
new_dict= defaultdict(list)
for row in list_dict:
acct=row[acct]
time_spent= float(row[time_spent])
if (acct not in new_dict):
new_dict[acct] = time_spent
else:
new_dict[acct].append(time_spent)
выдает ошибку:
AttributeError: 'float' object has no attribute 'append'
Если я удалю float,
time_spent= float(row[time_spent])
дает мне,
AttributeError: 'str' object has no attribute 'append'
Я должен добавить эти time_spent в список значений позже, поэтому я бы хотел, чтобы они были с плавающей точкой.
Ответ №1:
Когда acct
это не так new_dict
, вы присваиваете новому ключу значение с плавающей запятой ( time_spent
). Поскольку вы используете a defaultdict
, который автоматически создаст пустое list
значение при первом чтении ключа, вы должны удалить проверку и безоговорочно append
новое значение:
time_spent= float(row[time_spent])
new_dict[acct].append(time_spent)