favorite_languages.py
❶
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
❷
for name, languages in favorite_languages.items():
print(f"\n{name.title()}'s favorite languages are:")
❸
for language in languages:
print(f"\t{language.title()}")
Вы видите в точке
, что значение, связанное с каждым именем, теперь представля-
ет собой список. У некоторых участников один любимый язык программирования,
у других таких языков несколько. При переборе словаря в точке
переменная
с именем
languages
используется для хранения каждого значения из словаря, пото-
му что мы знаем, что каждое значение будет представлять собой список. В основном
цикле по элементам словаря другой цикл
перебирает элементы списка любимых
языков каждого участника. Теперь каждый участник опроса может указать сколько
угодно любимых языков программирования:
Jen's favorite languages are:
Python
Ruby
Sarah's favorite languages are:
C
Phil's favorite languages are:
Python
Haskell
Вложение
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()}")
126
Достарыңызбен бөлісу: |