Изучаем Python | страница 73



Работа со словарями


Словарь в языке 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}


(1) new_points = alien_0['points']

(2)print("You just earned " + str(new_points) + " points!")

После того как словарь будет определен, код (1) извлекает значение, связанное с ключом 'points', из словаря. Затем это значение сохраняется в переменной new_points. Строка (2) преобразует целое значение в строку и выводит сообщение с количеством заработанных очков:

You just earned 5 points!

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

Добавление новых пар «ключ—значение»