функция добавления диктантов во вложенный диктант, дающий увеличивающиеся ключи

#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)