Я работаю со списком CSV, который имеет приблизительно 7000 элементов, и у него есть определенные ключи, но я хочу создать функцию, которая может добавить новую строку к нему, которая получается путем деления цены на вес и затем сортируйте элементы по этому номеру.
У меня уже есть номер (цена / вес), я сделал это с помощью цикла for:
def ideal(dictionary):
list2=list(dictionary)
for x in range (len(list2)):
Keys=list(dictionary[list2[x]])
dict2=dictionary[list2[x]]
column=list(map(dict2.get,Keys))
newkey=(float(column[1]))/(float(column[2]))
Я попытался создать цикл for, чтобы вставить новую строку. Формат словаря выглядит следующим образом:
'chips': {'category': 'food', 'price': '345.0', 'weight[kg]': '0.2',
'volume[m3]': '0.5545'}, 'broccoli': {'category': 'food', 'price': '449.0',
'weight[kg]': '2.72', 'volume[m3]': '0.5492'}, 'ham': {'category': 'food',
'price': '680.0', 'weight[kg]': '22.57', 'volume[m3]': '0.1359'}
}
Есть еще категории, например: бакалея
def ideal(dictionary):
####newkey is a float
copy=dictionary
for x in copy:
dictionary.update( {"newkey":newkey})
Но я получаю эту ошибку.
RuntimeError: размер словаря изменился во время итерации