Создание вложенного словаря со списками и массивами
У меня есть два списка и массив:
owners = [ 'Bill', 'Ann', 'Sarah']
dog = ['shepherd', 'collie', 'poodle', 'terrier']
totals = [[5, 15, 3, 20],[3,2,16,16],[20,35,1,2]]
Я хочу сделать из них вложенный словарь.
dict1 = {'Bill': {'shepherd': 5, 'collie': 15, 'poodle': 3, 'terrier': 20},
'Ann': {'shepherd': 3, 'collie': 2, 'poodle': 16, 'terrier': 16},
'Sarah': {'shepherd': 20, 'collie': 35, 'poodle': 1, 'terrier': 2}
}
Моя ближайшая попытка:
totals_list = totals.tolist()
dict1 = dict(zip(owners, totals_list))
Я не могу найти способ создать вложенный словарь, который ищу. Какие-либо предложения?
1 ответ
Решение
main_dict = {}
for owner, total in zip(owners, totals):
main_dict[owner] = {}
for key, value in zip(dog, total):
main_dict[owner][key] = value
Вы также можете написать это в одну строку, используя dict comprehension
как:
main_dict = {owner: dict(zip(dog, total)) for owner, total in zip(owners, totals)}