Перебор всех значений в словаре

We use cookies. Read the Privacy and Cookie Policy

Если вас прежде всего интересуют значения, содержащиеся в словаре, используйте метод values() для получения списка значений без ключей. Допустим, вы хотите просто получить список всех языков, выбранных в опросе, и вас не интересуют имена людей, выбравших каждый язык:

favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

print("The following languages have been mentioned:")

for language in favorite_languages.values():

. .print(language.title())

Команда for читает каждое значение из словаря и сохраняет его в переменной language. При выводе этих значений будет получен список всех выбранных языков:

The following languages have been mentioned:

Python

C

Python

Ruby

Значения извлекаются из словаря без проверки на возможные повторения. Для небольших словарей это может быть приемлемо, но в опросах с большим количеством респондентов список будет содержать слишком много дубликатов. Чтобы получить список выбранных языков без повторений, можно воспользоваться множеством (set). Множество в целом похоже на список, но все его элементы должны быть уникальными:

favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

print("The following languages have been mentioned:")

(1) for language in set(favorite_languages.values()):

print(language.title())

Когда список, содержащий дубликаты, заключается в вызов set(), Python находит уникальные элементы списка и строит множество из этих элементов. В точке (1) set() используется для извлечения уникальных языков из favorite_languages.values(). В результате создается не содержащий дубликатов список языков программирования, упомянутых участниками опроса:

The following languages have been mentioned:

Python

C

Ruby

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

Упражнения

6-4. Глоссарий 2: теперь, когда вы знаете, как перебрать элементы словаря, упростите код из упражнения 6-3, заменив серию команд print циклом, перебирающим ключи и значения словаря. Когда вы будете уверены в том, что цикл работает, добавьте в глоссарий еще пять терминов Python. При повторном запуске программы новые слова и значения должны быть автоматически включены в вывод.

6-5. Реки: создайте словарь с тремя большими реками и странами, по которым протекает каждая река. Одна из возможных пар «ключ—значение» — ‘nile’: ‘egypt’.

• Используйте цикл для вывода сообщения с упоминанием реки и страны — например, «The Nile runs through Egypt.»

• Используйте цикл для вывода названия каждой реки, включенной в словарь.

• Используйте цикл для вывода названия каждой страны, включенной в словарь.

6-6. Опрос: Возьмите за основу код favorite_languages.py (с. 106).

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

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