Словарь с однотипными объектами

We use cookies. Read the Privacy and Cookie Policy

В предыдущем примере в словаре сохранялась разнообразная информация об ­одном объекте (пришельце из компьютерной игры). Словарь также может использоваться для хранения одного вида информации о многих объектах. Допустим, вы хотите провести опрос среди коллег и узнать их любимый язык программирования. Результаты простого опроса удобно сохранить в словаре:

favorite_languages = {

. .'jen': 'python',

. .'sarah': 'c',

. .'edward': 'ruby',

. .'phil': 'python',

. .}

Пары в словаре в этой записи разбиты по строкам. Ключами являются имена участников опроса, а значениями — выбранные ими языки. Если вы знаете, что для определения словаря потребуется более одной строки, нажмите клавишу Enter после ввода открывающей фигурной скобки. Снабдите следующую строку отступом на один уровень (четыре пробела) и запишите первую пару «ключ—значение», поставив за ней запятую. После этого при нажатии Enter ваш текстовый редактор будет автоматически снабжать все последующие пары таким же отступом, как у первой.

Завершив определение словаря, добавьте закрывающую фигурную скобку в новой строке после последней пары «ключ—значение» и снабдите ее отступом на один уровень, чтобы она была выровнена по ключам. За последней парой также рекомендуется включить запятую, чтобы при необходимости все было готово к добавлению новой пары «ключ—значение» в следующей строке.

примечание

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

Для заданного имени участника опроса этот словарь позволяет легко определить его любимый язык:

favorite_languages.py

favorite_languages = {

'jen': 'python',

'sarah': 'c',

'edward': 'ruby',

'phil': 'python',

}

(1) print("Sarah's favorite language is " +

(2) . .favorite_languages['sarah'].title() +

(3) . .".")

Чтобы узнать, какой язык выбран пользователем с именем Sarah, мы запрашиваем следующее значение:

favorite_languages['sarah']

Этот синтаксис используется в команде вывода (1) , а результат содержит значение, связанное с ключом:

Sarah's favorite language is C.

Этот пример также показывает, как разбить длинную команду print на несколько строк. Слово print короче большинства имен словарей, поэтому есть смысл включить первую часть выводимого текста сразу же за открывающей круглой скобкой (1) . Выберите точку, в которой будет разбиваться вывод, и добавьте оператор конкатенации (+) в конец первой строки (2). Нажмите Enter, а затем клавишу Tab для выравнивания всех последующих строк на один уровень отступа под командой print. Завершив построение вывода, поставьте закрывающую круглую скобку в последней строке блока print (3).

Упражнения

6-1. Человек: используйте словарь для сохранения информации об известном вам человеке. Сохраните имя, фамилию, возраст и город, в котором живет этот человек. Словарь должен содержать ключи с такими именами, как first_name, last_name, age и city. Выведите каждый фрагмент информации, хранящийся в словаре.

6-2. Любимые числа: используйте словарь для хранения любимых чисел. Возьмите пять имен и используйте их как ключи словаря. Придумайте любимое число для каждого человека и сохраните его как значение в словаре. Выведите имя каждого человека и его любимое число. Чтобы задача стала более интересной, опросите нескольких друзей и соберите реальные данные для своей программы.

6-3. Глоссарий: словари Python могут использоваться для моделирования «настоящего» словаря (чтобы не создавать путаницы, назовем его «глоссарием»).

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

• Выведите каждое слово и его определение в аккуратно отформатированном виде. Например, вы можете вывести слово, затем двоеточие и определение; или же слово в одной строке, а его определение — с отступом в следующей строке. Используйте символ новой строки ( ) для вставки пустых строк между парами «слово-определение» в выходных данных.