Робота зі словниками в PYTHON.

Опубликовано kybik - ср, 12/13/2017 - 09:17

Словник в мові Python являє собою сукупність пар «ключ-значення». Кожен ключ зв'язується з деяким значенням, і програма може отримати значення, пов'язане із заданим ключем. Значенням може бути число, рядок, список і навіть інший словник. Власне, будь-який об'єкт, який створюється в програмі Python, може стати значенням в словнику. В Python словник заключається у фігурні дужки {}, в яких записується послідовність пар «ключ-значення», як в попередньому прикладі:

 

alien_0 = {'color': 'green', 'points': 5}

Пара «ключ-значення» демонструє дані, пов'язані один з одним. Якщо ви вкажете ключ, то Python поверне значення, пов'язане з цим ключем. Ключ відділяється від значення двокрапкою, а окремі пари розділяються комами. У словнику може зберігатися будь-яка кількість пар «ключ-значення». Найпростіший словник містить рівно одну пару «ключ-значення», як в наступній зміненій:

 

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!

Якщо цей код буде виконуватися кожного разу, коли гравець збиває чергового прибульця, програма буде отримувати правильну кількість очок.

Додавання нових пар «ключ-значення».

Словники відносяться до динамічних структур даних: в словник можна в будь-який момент додавати нові пари «ключ-значення». Для цього вказується ім'я словника, за яким в квадратних дужках слідує новий ключ з новим значенням. Додамо в словник alien_0 ще два атрибути: координати x і y для виведення зображення прибульця в певній позиції екрану. Припустимо, прибулець має відображатися з лівого краю екрану, в 25 пікселях від верхнього краю. Так як система екранних координат зазвичай розташовується в лівому верхньому кутку, для розміщення прибульця в лівому краю координата x повинна бути рівною 0, а координата y - 25:

 

alien_0 = { 'color': 'green', 'points': 5}
print (alien_0)
.1. alien_0 [ 'x_position'] = 0
.2. alien_0 [ 'y_position'] = 25
print (alien_0)

Програма починається з визначення того ж словника, з яким ми вже працювали раніше. Після цього виводиться «знімок» поточного стану словника. У точці .1.
в словник додається нова пара «ключ-значення»: ключ 'x_position' і значення 0. Те ж саме робиться для ключа 'y_position' в точці .2.. При виведенні зміненого словника ми бачимо дві додаткові пари «ключ-значення»:

 

{ 'Color': 'green', 'points': 5}
{ 'Color': 'green', 'points': 5, 'y_position': 25, 'x_position': 0}

Остаточна версія словника містить чотири пари «ключ-значення». Перші дві визначають колір і кількість очок, а інші дві - координати. Зверніть увагу: порядок пар «ключ-значення» не відповідає порядку їх додавання. Python не цікавить, в якому порядку додавалися пари; важливим є лише зв'язок між кожним ключем і його значенням.

Теги