М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет86/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   82   83   84   85   86   87   88   89   ...   334
Байланысты:
Изучаем Python

favorite_languages.py
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}

for name, language in favorite_languages.items():

print(f"{name.title()}'s favorite language is {language.title()}.")
Код в точке 

приказывает Python перебрать все пары «ключ-значение» в словаре. 
В процессе перебора пар ключ сохраняется в переменной 
name
, а значение — в пере-


116
Глава 6 • Словари
менной 
language
. С этими содержательными именами намного проще понять, что 
делает команда 
print
в точке 

.
Всего в нескольких строках кода выводится вся информация из опроса:
Jen's favorite language is Python.
Sarah's favorite language is C.
Edward's favorite language is Ruby.
Phil's favorite language is Python.
Такой способ перебора точно так же работает и в том случае, если в словаре будут 
храниться результаты опроса тысяч и даже миллионов людей.
Перебор всех ключей в словаре
Метод 
keys()
удобен в тех случаях, когда вы не собираетесь работать со всеми 
значениями в словаре. Переберем словарь 
favorite_languages
и выведем имена 
всех людей, участвовавших в опросе:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}

for name in favorite_languages.keys():
print(name.title())
Строка 

приказывает Python извлечь из словаря 
favorite_languages
все ключи 
и последовательно сохранять их в переменной 
name
. В выходных данных представ-
лены имена всех людей, участвовавших в опросе:
Jen
Sarah
Edward
Phil
На самом деле перебор ключей используется по умолчанию при переборе словаря, 
так что этот код будет работать точно так же, как если бы вы написали
for name in favorite_languages:
вместо…
for name in favorite_languages.keys():
Используйте явный вызов метода 
keys()
, если вы считаете, что он упростит чтение 
вашего кода, или опустите его при желании.


Перебор словаря
117
Чтобы обратиться в цикле к значению, связанному с интересующим вас ключом, 
используйте текущий ключ. Для примера выведем для пары друзей сообщение о 
выбранном ими языке. Мы переберем имена в словаре, как это делалось ранее, но 
когда имя совпадает с именем одного из друзей, программа будет выводить специ-
альное сообщение об их любимом языке:
favorite_languages = {
...
}

friends = ['phil', 'sarah']
for name in favorite_languages.keys():
print(name.title())

if name in friends:

language = favorite_languages[name].title()
print(f"\t{name.title()}, I see you love {language}!")
В точке 

строится список друзей, для которых должно выводиться сообщение. 
В цикле выводится имя очередного участника опроса, а затем в точке 

программа 
проверяет, входит ли текущее имя в список 
friends
. Если имя входит в список, вы-
водится специальное приветствие с упоминанием выбранного языка 

.
Выводятся все имена, но для наших друзей выводится специальное сообщение:
Hi Jen.
Hi Sarah.
Sarah, I see you love C!
Hi Edward.
Hi Phil.
Phil, I see you love Python!
Метод 
keys()
также может использоваться для проверки того, участвовал ли кон-
кретный человек в опросе:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}

if 'erin' not in favorite_languages.keys():
print("Erin, please take our poll!")
Метод 
keys()
не ограничивается перебором: он возвращает список всех ключей, 
и строка 

просто проверяет, входит ли ключ 
'erin'
в список. Так как ключ в спи-
ске отсутствует, программа выводит сообщение:
Erin, please take our poll!


118

Достарыңызбен бөлісу:
1   ...   82   83   84   85   86   87   88   89   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет