Вложенные словари
Когда словарь содержит другие словари, мы называем их вложенными словарями.
Пример
Создайте один словарь с тремя словарями внутри:
Prompt
Напишите программу на Python, которая создаёт вложенный словарь с именем myfamily с тремя детьми. У каждого ребёнка (child1, child2, child3) есть name и year: Emil 2004, Tobias 2007, Linus 2011. Выведите словарь.
Вывод: полная программа на Python
main.py
myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}
print(myfamily)
Пример
Сначала определите три отдельных словаря, а затем поместите их в четвёртый:
Prompt
Напишите программу на Python, которая создаёт три отдельных словаря (child1, child2, child3) с name и year для Emil 2004, Tobias 2007 и Linus 2011. Затем создайте вложенный словарь с именем myfamily, содержащий эти три словаря. Выведите результат.
Вывод: полная программа на Python
main.py
child1 = {
"name" : "Emil",
"year" : 2004
}
child2 = {
"name" : "Tobias",
"year" : 2007
}
child3 = {
"name" : "Linus",
"year" : 2011
}
myfamily = {
"child1" : child1,
"child2" : child2,
"child3" : child3
}
print(myfamily)
Доступ к элементам вложенных словарей
Чтобы добраться до элемента вложенного словаря, запишите цепочку имён словарей, начиная с самого внешнего:
Пример
Выведите имя, хранящееся для ребёнка 2:
Prompt
Напишите программу на Python, которая создаёт вложенный словарь с именем myfamily с тремя детьми (child1, child2, child3), у каждого из которых есть name и year. Получите и выведите имя child2.
Вывод: полная программа на Python
main.py
myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}
print(myfamily["child2"]["name"])
Перебор вложенных словарей в цикле
Метод items() позволяет пройти по словарю, как показано здесь:
Пример
Пройдите по всем ключам и значениям на обоих уровнях вложенности:
Prompt
Напишите программу на Python, которая создаёт вложенный словарь с именем myfamily с тремя детьми. Переберите вложенный словарь в цикле и выведите ключ каждого ребёнка, а затем все пары «ключ-значение» этого ребёнка.
Вывод: полная программа на Python
main.py
myfamily = {
"child1" : {
"name" : "Emil",
"year" : 2004
},
"child2" : {
"name" : "Tobias",
"year" : 2007
},
"child3" : {
"name" : "Linus",
"year" : 2011
}
}
for x, obj in myfamily.items():
print(x)
for y in obj:
print(y + ':', obj[y])