Словники
Словник (dict) – це структура даних, призначена для зберігання довільних об'єктів з доступом за довільним ключем. Дані в словнику зберігаються в форматі ключ=значення. Ключі в межах словника мають бути унікальними, тобто двох однакових ключів в словнику бути не може. Ключ повинен мати незмінюваний тип даних: ціле або дійсне число, рядок, кортеж.
Словник записується, як перелік пар ключ : значення, розділених комою та взятих в фігурні дужки: {'A1':2, 'A2':3}
Словник є змінюваним типом даних: в нього можна додавати нові елементи з довільними ключами і вилучати вже існуючі елементи.
Для задання порожнього словника можна скористатися однією з наступних команд:
a = {}
b = dict()
Задання словника з наперед заданим набором елементів:
a = {'A1':2, 'A2':3}
b = dict(id1=4, id2=8)
Враховуючи те, що елементом словника є пара ключ=значення, то, як такого, доступу до елемента словник не має. В словнику передбачена можливість доступу до значення елемента словника за його ключем. Для того, щоб звернутися до значення елемента словника, необхідно вказати ім’я змінної словника та в квадратних дужках ключ необхідного елемента (ім’я_словника[ключ]).
e = {'A1':2, 'A2':3}
print(e['A2'])96 # 3
При спробі доступу за неіснуючим у словнику ключем виникає виняток KeyError.
Можна перевірити приналежність деякого ключа до словника, використовуючи оператор in (ключ in ім’я_словника).
Щоб додати елемент до словника, потрібно вказати ім’я змінної словника та в квадратних дужках новий ключ та виконати присвоєння нового значення (ім’ясловника[новийключ]=значення).
e['A3']=4
Для видалення елемента зі словника можна скористатися командою del (del ім’я_словника[ключ]).
del e['A1']
Методи словників
dict.fromkeys(iterable [, value]). Створює новий словник, ключами якого будуть елементи з iterable і однаковим для всіх значенням value.
d.fromkeys(['a', 'b', 'c'], 12)
# { 'a': 12, 'b': 12, 'c': 12}}
dict.update([other]). Доповнює словник dict парами (ключ=значення) з словника other, якщо ключ вже присутній в словнику, то його значення оновлюється.
chars = {'a': 1, 'b': 2}
chars.update({"c": 3})
print(chars) # {'a': 1, 'b': 2, "c": 3}
dict.copy(). Повертає копію словника dict.
chars = {'a': 1, 'b': 2}
chars_copy = chars.copy()
chars_copy == chars # True
dict.get(key[, default]). Повертає значення зі словника dict за ключем key. У випадку відсутності елемента з ключем key повертається значення default.
chars = {'a': 1, 'b': 2}
c_idx = chars.get('c', -1)
print(c_idx) # -1
dict.setdefault(key[, default]). Повертає значення зі словника dict за ключем key. У випадку відсутності елемента з ключем key повертається значення default, і до словника додається елемент з ключем key і значенням default.
my_dict = {'a': 1}
my_dict.setdefault('a', 2) # {'a': 1}
my_dict.setdefault('b', 2) # {'a': 1, 'b': 2}
my_dict.setdefault('c') # {'a': 1, 'b': 2, 'c': None}
dict.keys(). Повертає ключі елементів словника dict у вигляді об’єкту перегляду словника, що забезпечують динамічний перегляд записів словника.
{'a': 1, 'b': 2}.keys()
# dict_keys(['a', 'b'])
dict.values(). Повертає значення елементів словника dict у вигляді об’єкту перегляду словника, що забезпечують динамічний перегляд записів словника.
marks = {'Physics':67, 'Maths':87}
marks.values() # dict_values([67, 87])
dict.items(). Повертає ключі та значення елементів словника dict у вигляді об’єкту перегляду словника, що забезпечують динамічний перегляд записів словника. Елементи словника подаються в вигляді кортежів (ключ, значення).
marks = {'Physics':67, 'Maths':87}
marks.items() # dict_items([('Physics', 67), ('Maths', 87)])
dict.pop(key[, default]). Вилучає зі словника dict елемент з ключем key та повертає його значення, як результат виконання функції. У випадку відсутності елемента з ключем key повертається значення default. Якщо default не вказаний, і елемент з ключем key відсутній, то виникає виняток KeyError.
chars = {'a': 1, 'b': 2}
b_num = chars.pop('b')
print(chars) # {'a': 1}
print(b_num) # 2
dict.popitem(). Вилучає і повертає пару (ключ, значення) зі словника dict, як результат виконання функції. Пари повертаються в порядку LIFO (last-in first-out). Якщо словник порожній, то виникає виняток KeyError.
car = {"brand": "Ford", "model": "Mustang", "year": 1964}
car.popitem() # ("year", 1964)
print(car) # {'brand': 'Ford', 'model': 'Mustang'}
dict.clear(). Очищує словник dict (вилучає всі елементи зі словнику)
chars = {'a': 1, 'b': 2}
chars.clear()
print(chars) # {}