Перебор
словаря
111
Hi Sarah, I see your favorite language is C!
Jen
Метод
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!
Упорядоченный
перебор ключей словаря
Словарь всегда поддерживает связь между ключом и связанным с ним значением,
но порядок получения элементов из словаря непредсказуем. Впрочем, это не со-
здает проблем, потому что обычно требуется лишь получить правильное значение,
связанное с каждым ключом.
Один из способов получения элементов в определенном порядке основан на сор-
тировке ключей, возвращаемых циклом
for
. Для получения упорядоченной копии
ключей можно
воспользоваться функцией
sorted()
:
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
for name in sorted(favorite_languages.keys()):
print(name.title() + ", thank you for taking the poll.")
Эта команда
for
не отличается от других команд
for
, если не считать того, что
метод
dictionary.keys()
заключен в вызов функции
sorted()
. Эта конструкция
приказывает Python выдать список всех ключей в словаре и отсортировать его
перед тем, как перебирать элементы. В выводе перечислены все пользователи,
участвовавшие в опросе, а их имена упорядочены по алфавиту:
Edward, thank you for taking the poll.
Jen, thank you for taking the poll.
Phil, thank you for taking the poll.
Sarah, thank you for taking the poll.