Глава 6 • Словари
Работа со словарями
Словарь
в языке Python представляет собой совокупность пар «ключ—значение».
Каждый ключ связывается с некоторым значением, и программа может получить
значение, связанное с заданным ключом. Значением может быть число, строка,
список и даже другой словарь. Собственно,
любой
объект, создаваемый в программе
Python, может стать значением в словаре.
В Python словарь заключается в фигурные скобки
{}
, в которых приводится по-
следовательность пар «ключ—значение», как в предыдущем примере:
alien_0 = {'color': 'green', 'points': 5}
Пара «ключ—значение»
представляет собой данные, связанные друг с другом. Если
вы укажете ключ, то Python вернет значение, связанное с этим ключом. Ключ отде-
ляется от значения двоеточием, а отдельные пары разделяются запятыми. В словаре
может храниться любое количество пар «ключ—значение».
Простейший словарь содержит ровно одну пару «ключ—значение», как в следу-
ющей измененной версии словаря
alien_0
:
alien_0 = {'color': 'green'}
В этом словаре хранится ровно один фрагмент информации о пришельце
alien_0
,
а именно — его цвет. Строка
'color'
является ключом в словаре; с этим ключом
связано значение
'green'
.
Обращение к значениям в словаре
Чтобы получить значение, связанное с ключом, укажите имя словаря, а затем ключ
в квадратных скобках:
alien_0 = {'color': 'green'}
print(alien_0['color'])
Эта конструкция возвращает значение, связанное с ключом
'color'
, из словаря
alien_0
:
green
Количество пар «ключ—значение» в словаре не ограничено. Например, вот как
выглядит исходный словарь
alien_0
с двумя парами «ключ—значение»:
alien_0 = {'color': 'green', 'points': 5}
Теперь программа может получить значение, связанное с любым из ключей
в
alien_0
:
color
или
points
. Если игрок сбивает корабль пришельца, для получения
заработанных им очков может использоваться код следующего вида:
alien_0 = {'color': 'green', 'points': 5}
new_points = alien_0['points']
print("You just earned " + str(new_points) + " points!")
Работа со словарями
103
После того как словарь будет определен, код
извлекает значение, связанное
с ключом
'points'
, из словаря. Затем это значение сохраняется в переменной
new_points
. Строка
преобразует целое значение в строку и выводит сообщение
с количеством заработанных очков:
You just earned 5 points!
Если этот код будет выполняться каждый раз, когда игрок сбивает очередного при-
шельца, программа будет получать правильное количество очков.
Добавление новых пар «ключ—значение»
Словари относятся к динамическим структурам данных: в словарь можно в любой
момент добавлять новые пары «ключ—значение». Для этого указывается имя сло-
варя, за которым в квадратных скобках следует новый ключ с новым значением.
Добавим в словарь
alien_0
еще два атрибута: координаты
x
и
y
для вывода изобра-
жения пришельца в определенной позиции экрана. Допустим, пришелец должен
отображаться у левого края экрана, в 25 пикселах от верхнего края. Так как система
экранных координат обычно располагается в левом верхнем углу, для размещения
пришельца у левого края координата
x
должна быть равна 0, а координата
y
— 25:
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
Программа начинается с определения того же словаря, с которым мы уже работали
ранее. После этого выводится «снимок» текущего состояния словаря. В точке
в словарь добавляется новая пара «ключ—значение»: ключ
'x_position'
и значе-
ние
0
. То же самое делается для ключа
'y_position'
в точке
. При выводе изме-
ненного словаря мы видим две дополнительные пары «ключ—значение»:
{'color': 'green', 'points': 5}
{'color': 'green', 'points': 5, 'y_position': 25, 'x_position': 0}
Окончательная версия словаря содержит четыре пары «ключ—значение». Первые
две определяют цвет и количество очков, а другие две — координаты. Обратите
внимание: порядок пар «ключ—значение» не соответствует порядку их добавления.
Python не интересует, в каком порядке добавлялись пары; важна лишь связь между
каждым ключом и его значением.
Создание пустого словаря
В некоторых ситуациях бывает удобно (или даже необходимо) начать с пустого
словаря, а затем добавлять в него новые элементы. Чтобы начать заполнение пу-
стого словаря, определите словарь с пустой парой фигурных скобок, а затем добав-
ляйте новые пары «ключ—значение» (каждая пара в отдельной строке). Например,
вот как строится словарь alien_0:
104
Достарыңызбен бөлісу: |