Перейти до змісту

Тип даних 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()
{}
>>>