УПРАЖНЕНИЯ
6-1 . Человек: используйте словарь для сохранения информации об известном вам чело-
веке . Сохраните имя, фамилию, возраст и город, в котором живет этот человек . Словарь
должен содержать ключи с такими именами, как first_name, last_name, age и city . Выведите
каждый фрагмент информации, хранящийся в словаре .
6-2 . Любимые числа: используйте словарь для хранения любимых чисел . Возьмите пять
имен и используйте их как ключи словаря . Придумайте любимое число для каждого чело-
века и сохраните его как значение в словаре . Выведите имя каждого человека и его люби-
мое число . Чтобы задача стала более интересной, опросите нескольких друзей и соберите
реальные данные для своей программы .
6-3 . Глоссарий: словари Python могут использоваться для моделирования «настоящего»
словаря (чтобы не создавать путаницы, назовем его «глоссарием») .
• Вспомните пять терминов из области программирования, которые вы узнали в пре-
дыдущих главах . Используйте эти слова как ключи глоссария, а их определения — как
значения .
• Выведите каждое слово и его определение в аккуратно отформатированном виде .
Например, вы можете вывести слово, затем двоеточие и определение; или же слово
в одной строке, а его определение — с отступом в следующей строке . Используйте
символ новой строки (\n) для вставки пустых строк между парами «слово-определе-
ние» в выходных данных .
Перебор словаря
Словарь Python может содержать как несколько пар «ключ—значение», так и мил-
лионы таких пар. Поскольку в словаре может храниться большой объем данных,
Python предоставляет средства для перебора элементов словаря. Информация
может храниться в словарях по-разному, поэтому предусмотрены разные способы
перебора. Программа может перебрать все пары «ключ—значение» в словаре, толь-
ко ключи или только значения.
108 Глава 6 • Словари
Перебор всех пар «ключ—значение»
Прежде чем ознакомиться с разными способами перебора, рассмотрим новый
словарь, предназначенный для хранения информации о пользователе веб-сайта.
В следующем словаре хранится имя пользователя, его имя и фамилия:
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
То, что вы уже узнали в этой главе, позволит вам обратиться к любому
отдель
ному атрибуту
user_0
. Но что если вы хотите просмотреть все данные
из словаря этого пользователя? Для этого можно воспользоваться перебором
в цикле
for
:
user.py
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.items():
print("\nKey: " + key)
print("Value: " + value)
Как мы видим в точке , чтобы написать цикл
for
для словаря, необходимо создать
имена для двух переменных, в которых будет храниться ключ и значение из каждой
пары «ключ—значение». Этим двум переменным можно присвоить любые имена —
с короткими однобуквенными именами код будет работать точно так же:
for k, v in user_0.items()
Вторая половина команды
for
в точке включает в себя имя словаря, за которым
следует вызов метода
items()
, возвращающий список пар «ключ—значение». Цикл
for
сохраняет компоненты пары в двух указанных переменных. В предыдущем при-
мере мы используем переменные для вывода каждого ключа
v
, за которым следует
связанное значение
w
.
"\n"
в первой команде
print
гарантирует, что перед каждой
парой «ключ—значение» в выводе будет вставлена пустая строка:
Key: last
Value: fermi
Key: first
Value: enrico
Key: username
Value: efermi
Снова обратите внимание на то, что пары «ключ—значение» не возвращаются
в порядке их хранения даже при переборе в словаре. Python не интересует порядок
Перебор словаря 109
хранения пар «ключ—значение»; отслеживаются только связи между отдельными
ключами и их значениями.
Перебор всех пар «ключ—значение» особенно хорошо работает для таких сло-
варей, как в примере
favorite_languages.py
на с. 106: то есть для словарей, хра-
нящих один вид информации со многими разными ключами. Перебрав словарь
favorite_languages
, вы получите имя каждого человека и его любимый язык
программирования. Так как ключ всегда содержит имя, а значение — язык про-
граммирования, в цикле вместо имен
key
и
value
используются переменные
name
и
language
. С таким выбором имен читателю кода будет проще следить за тем, что
происходит в цикле:
Достарыңызбен бөлісу: |