Урок 11. Введення в словники

Одним із складних типів даних (поряд з рядками і списками) у мові програмування Python є словники.

Словник (Dictionary) – це змінюваний (як і список) невпорядкований (на відміну від рядків і списків) набір пар “ключ: значення”.

Щоб уявлення про словник стало більш зрозумілим, можна провести аналогію зі звичайним словником, наприклад, англо-українським. На кожне англійське слово в такому словникові є українське слово-переклад: cat – кішка, dog – собака, table – стіл і т.д. Якщо англо-український словник описувати за допомогою Python, то англійські слова будуть ключами, а українські – їхніми значеннями:

{'cat': ' ', 'dog': ' ', 'bird': кішка собака 'птах', 'mouse': 'миша'}

Зверніть увагу на фігурні дужки, саме з їх допомогою визначається словник. Синтаксис словника на Пітоні можна описати такою схемою:

Якщо створити словник в інтерпретаторі Python, то після натискання Enter можна спостерігати, що послідовність виведення пар “ключ: значення” може не збігається з тим, як було введено:

>>> {'cat': ' ', 'dog': ' ', 'bird': кішка собака 'птах', 'mouse': 'миша'}
{'bird': 'птах', 'mouse': ' миша ',' dog ':' собака ',' cat ':' кішка '}

Справа в тім, що в словнику абсолютно не важливий порядок пар, і інтерпретатор виводить їх у випадковому порядку. Тоді як же отримати доступ до певного елемента, якщо індексація не можлива в принципі? Відповідь: в словнику доступ до значень здійснюється за ключами, які беруться у квадратні дужки (за аналогією з індексами рядків і списків).

>>> dic = {'cat': 'кішка', 'dog': 'собака', 'bird': 'птах', 'mouse': 'миша'}
>>> dic ['cat']
'кішка'
>>> dic ['bird']
'птах'

Словники, як і списки, є змінним типом даних: можна змінювати, додавати та видаляти елементи (пари “ключ: значення”). Спочатку словник можна створити порожнім (наприклад, d = {}) і лише потім заповнити його елементами. Додавання і зміна має однаковий синтаксис: словник[ключ] = значення. Ключ може бути як вже існуючим (тоді відбувається зміна значення), так і новим (відбувається додавання елемента словника). Видалення елемента словника здійснюється за допомогою функції del().

>>> dic = {'cat': 'кішка', 'dog': 'собака', 'bird': 'птах', 'mouse': 'миша'}
>>> dic ['elephant'] = 'бегемот'
>>> dic ['fox'] = 'лисиця'
>>> dic
{'fox': 'лисиця', 'dog': 'собака', 'cat': 'кішка', 'elephant': 'бегемот', 'mouse': 'миша', 'bird': 'птах'}
>>> dic ['elephant'] = 'слон'
>>> del(dic['bird'])
>>> dic
{'fox': 'лисиця', 'dog': 'собака', 'cat': 'кішка', 'elephant': 'слон', 'mouse': 'миша'}

Типи даних ключів і значень словників не обов’язково повинні бути рядками. Значення словників можуть бути більш складними (містити структури даних, наприклад, інші словники або списки).

>>> d = {1:'one',2:'two',3:'three'}
>>> d
{1: 'one', 2: 'two', 3: 'three'}
>>> d = {10:[3,2,8], 100:[1,10,5], 1000:[23,1,5]}
>>> d
{1000: [23, 1, 5], 10: [3, 2, 8], 100: [1, 10, 5]}
>>> d = {1.1:2, 1.2:0, 1.3:8}
>>> d
{1.3: 8, 1.2: 0, 1.1: 2}
>>> d = {1.1:2, 10:'apple', 'box':100}
>>> d
{'box': 100, 10: 'apple', 1.1: 2}

Словники – це широко використовуваний тип даних мови Python. Для роботи з ними існує ряд вбудованих функцій.

Практична робота