Тип даних dict
Словники — це невпорядковані набори пар "ключ - значення". Коли ви додаєте до словника новий ключ, завжди також повинні додати туди і значення (яке можна буде змінити пізніше). Словники оптимізовані для отримання значення, якщо ви знаєте відповідний ключ, але ніяк не навпаки.
Щоб створити словник, треба у фігурних дужках перерахувати пари "ключ - значення". У парі ключ від значення відділяють двокрапкою. Якщо таких пар більше однієї, їх розділяють комою.
>>> person = {'name': 'Сидоренко', 'age': 21}
>>> person
{'name': 'Сидоренко', 'age': 21}
>>>
'age' — це ключ, а пов'язане з цим ключем значення буде 21.
Щоб отримати зі словника значення по його ключу вказують словник і у квадратних дужках ключ:
>>> person['age']
21
>>>
Можна використовувати тільки ті ключі, які вже містяться у словнику:
>>> person[21]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 21
>>>
Словник не може містити дублікатів ключів. Присвоєння значення чинному ключу затре старе значення.
Словники не мають попередньо заданого обмеження в розмірі. Ви в будь-який час можете додавати до словника нові пари "ключ-значення" чи змінювати значення чинної пари. Розвиваючи попередній приклад:
>>> person
{'name': 'Сидоренко', 'age': 21}
>>> person['age'] = 31
>>> person['phone'] = '+380971234567'
>>> person
{'name': 'Сидоренко', 'age': 31, 'phone': '+380971234567'}
>>>
Ключами словника можуть бути лише об'єкти немутабельних типів:
>>> floors_heights = {[0, 1]:145 }
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> floors_heights = {(0, 1):145 }
>>> floors_heights
{(0, 1): 145}
>>>
Значеннями можуть бути будь-які об'єкти:
>>> marks = {'Сидоренко': [3, 4, 5], 'Петренко': None}
>>> marks
{'Сидоренко': [3, 4, 5], 'Петренко': None}
>>>
З'ясувати наявність ключа у словнику можна за допомогою операторів in
, not in
:
>>> d = {1:11, 'str': 'У бобра добра багато!'}
>>> 1 in d
True
>>> 'int' not in d
True
>>> 'str' in d
True
>>>
Дізнатись кількість пар ключ-значення у словнику:
>>> d={1:None, None:1}
>>> len(d)
2
>>>
Отримати список з відсортованими ключами словнка:
>>> d = {2:22, 3:33, 1:11}
>>> sorted(d)
[1, 2, 3]
>>>
Створити пустий словник:
>>> d = {}
>>> d
{}
>>> dict()
{}
>>>