114
Глава 6 •
Словари
6.2. Любимые числа:
используйте словарь для хранения любимых чисел. Возьмите пять
имен и используйте их как ключи словаря. Придумайте любимое число для каждого чело-
века и сохраните его как значение в словаре. Выведите имя каждого человека и его люби-
мое число. Чтобы задача стала более интересной, опросите нескольких друзей и соберите
реальные данные для своей программы.
6.3. Глоссарий:
словари Python могут использоваться для моделирования «настоящего»
словаря (чтобы не
создавать путаницу, назовем его глоссарием):
• Вспомните пять терминов из области программирования, которые вы узнали в пре-
дыдущих главах. Используйте эти слова как ключи глоссария, а их определения —
как значения.
• Выведите каждое слово и его определение в аккуратно отформатированном виде.
Например, вы можете вывести слово, затем двоеточие и определение или же слово
в одной строке, а его определение — с отступом в следующей строке. Используйте
символ новой строки
(\n)
для вставки пустых строк между парами «слово — опре-
деление» в выходных данных.
Перебор
словаря
Словарь Python может содержать как несколько пар «ключ-значение», так и мил-
лионы таких пар. Поскольку словарь может содержать большие объемы данных,
Python предоставляет средства для перебора элементов словаря. Информация
может храниться в словарях по-разному, поэтому предусмотрены разные способы
перебора. Программа может перебрать все пары «ключ-значение» в словаре, только
ключи или только значения.
Перебор всех пар «ключ-значение»
Прежде чем рассматривать разные способы перебора, рассмотрим новый словарь,
предназначенный для хранения информации о пользователе веб-сайта. В следую-
щем словаре
хранится имя пользователя, его имя и фамилия:
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
То, что вы уже узнали в этой главе, позволит вам обратиться к любому отдельному
атрибуту
user_0
. Но что, если вы хотите просмотреть
все
данные из словаря этого
пользователя? Для этого можно воспользоваться
перебором в цикле
for
:
user.py
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
Перебор словаря
115
}
❶
for key, value in user_0.items():
❷
print(f"\nKey: {key}")
❸
print(f"Value: {value}")
Как мы видим в точке
, чтобы написать цикл
for
для словаря, необходимо соз-
дать имена для двух переменных, в которых будет храниться ключ и значение из
каждой пары «ключ-значение». Этим двум переменным можно присвоить любые
имена — с короткими однобуквенными именами код будет работать точно так же:
for k, v in user_0.items()
Вторая половина команды
for
в точке
включает имя словаря, за которым следует
вызов метода
items()
, возвращающий список пар «ключ-значение». Цикл
for
со-
храняет компоненты пары в двух указанных переменных. В предыдущем примере
мы используем переменные для вывода каждого ключа
, за которым следует
связанное значение
.
"\n"
в первой команде
print
гарантирует, что перед каждой
парой «ключ-значение» в выводе будет вставлена пустая строка:
Key: last
Value: fermi
Key: first
Value: enrico
Key: username
Value: efermi
Перебор всех пар «ключ-значение» особенно хорошо работает для таких словарей,
как в примере
favorite_languages.py
на с. ___: то есть для словарей, хранящих
один вид информации со многими разными ключами. Перебрав словарь
favorite_
languages
, вы получите имя каждого человека и его любимый язык программиро-
вания. Так как ключ всегда содержит имя, а значение — язык программирования,
в цикле вместо имен
key
и
value
используются переменные
name
и
language
. С таким
выбором имен читателю кода будет проще следить за тем, что происходит в цикле:
Достарыңызбен бөлісу: