Вложение
125
Edward's favorite languages are:
Ruby
Go
Чтобы дополнительно усовершенствовать программу, включите в начало цикла
for
словаря команду
if
для проверки того, выбрал ли данный участник более одного
языка программирования (проверка основана на значении
len(languages)
). Если
у участника только один любимый язык, текст сообщения изменяется для един-
ственного числа (например, «Sarah’s favorite language is C»).
ПРИМЕЧАНИЕ
Глубина вложения списков и словарей не должна быть слишком боль-
шой . Если вам приходится вкладывать элементы на глубину существенно большую, чем
в предыдущих примерах, или если вы работаете с чужим кодом со значительной глуби-
ной
вложения,
скорее всего, у задачи существует более простое решение .
Словарь в
словаре
Словарь также можно вложить в другой словарь, но в таких случаях код быстро
усложняется. Например, если на сайте есть несколько пользователей с уникаль-
ными именами, вы можете использовать имена пользователей как ключи в сло-
варе. Информация о каждом пользователе при этом хранится в словаре, который
используется как значение, связанное с именем. В следующем примере о каждом
пользователе хранится три вида информации: имя, фамилия и место жительства.
Чтобы получить доступ к этой информации, переберите имена пользователей
и словарь
с информацией, связанной с каждым именем:
many_users.py
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
❶
for username, user_info in users.items():
❷
print(f"\nUsername: {username}")
❸
full_name = f"{user_info['first']} {user_info['last']}"
location = user_info['location']
❹
print(f"\tFull name: {full_name.title()}")
print(f"\tLocation: {location.title()}")