Python: Урок 11. Словники

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

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

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


Якщо створити словник в інтерпретаторі 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. Для роботи з ними існує ряд вбудованих функцій.

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

1. Створіть словник, зв'язавши його з змінною school, і наповніть його даними, які б відображали кількість учнів у десяти різних класах (наприклад, 1а, 1б, 2б, 6а, 7в і т.д.).
2. Дізнайтеся скільки людей в якомусь класі.
3. Уявіть, що в школі відбулися зміни, внесіть їх до словника:
  • в трьох класах змінилася кількість учнів;
  • у школі з'явилося два нових класи;
  • у школі розформували один з класів.
4. Виведіть вміст словника на екран.

Зміст курсу

Вступ
Урок 1. Історія мов програмування. Компіляція та інтерпретація
Урок 2. Знайомство з Python і середовищами програмування
Урок 3. Типи даних в програмуванні. Визначення змінної
Урок 4. Логічні вирази
Урок 5. Умовний оператор. Інструкція if
Урок 6. Множинне розгалуження
Урок 7. Цикл while
Урок 8. Введення даних з клавіатури
Урок 9. Рядки як послідовності символів
Урок 10. Списки - змінювані послідовності
Урок 11. Cловники
Урок 12. Цикл for
Урок 13. Функції
Урок 14. Параметри і аргументи функцій. Локальні та глобальні змінні
Урок 15. Перевірочна робота з основ програмування на Python

Коментарі

Популярні дописи з цього блогу

Азбука Морзе Українською

Python: Урок 4. Логічні вирази

Python: Урок 3. Типи даних в програмуванні. Визначення змінної