#python #dictionary #nested
Вопрос:
Допустим, у меня пустой словарь. Как бы я написал функцию, которая добавляла бы другие словари к пустому, давая ему ключ, который увеличивался бы с каждым добавленным новым словарем?
Таким образом, это приведет к чему-то вроде:
{0: {'name': 'pork', 'cals': 100, 'pro': 10, 'sugar': 1},
1: {'name': 'chicken', 'cals': 190, 'pro': 19, 'sugar': 19},
2: {'name': 'beef', 'cals': 160, 'pro': 12, 'sugar': 2}}
Комментарии:
1. Попробуйте сами и опубликуйте свою попытку.
Ответ №1:
dict_of_dicts = dict(enumerate(list_of_dicts))
Ответ №2:
Вы можете просто создать список словарей, которые хотите добавить, а затем использовать простой цикл for, чтобы добавить их в свой словарь:
result = {}
ex1 = {'name': 'pork', 'cals': 100, 'pro': 10, 'sugar': 1}
ex2 = {'name': 'chicken', 'cals': 190, 'pro': 19, 'sugar': 19}
ex3 = {'name': 'beef', 'cals': 160, 'pro': 12, 'sugar': 2}
listDict = [ex1,ex2,ex3]
for i in range(len(listDict)):
result[i] = listDict[i]
print(result)
выход:
{0: {'name': 'pork', 'cals': 100, 'pro': 10, 'sugar': 1}, 1: {'name': 'chicken', 'cals': 190, 'pro': 19, 'sugar': 19}, 2: {'name': 'beef', 'cals': 160, 'pro': 12, 'sugar': 2}}
Ответ №3:
Вот код, который вам поможет:
def add_dict(d1, out_dict):
new_key = len(out_dict.keys())
out_dict[new_key] = d1
ex1 = {'name': 'pork', 'cals': 100, 'pro': 10, 'sugar': 1}
ex2 = {'name': 'chicken', 'cals': 190, 'pro': 19, 'sugar': 19}
ex3 = {'name': 'beef', 'cals': 160, 'pro': 12, 'sugar': 2}
listDict = [ex1,ex2,ex3]
out = {}
for dict1 in listDict:
add_dict(dict1, out)
print (out)