Python3 Словарь
Словарь — это ещё один вид модели изменяемого контейнера, которая может хранить объекты любого типа.
Каждая пара ключ-значение словаряkey=>valueпара разделяется двоеточием:разделяется, а каждая пара разделяется запятой (,) разделяется, весь словарь заключается в фигурные скобки{}, формат следующий:
d = {key1 : value1, key2 : value2, key3 : value3 }
Примечание:dictТак как это ключевое слово Python и встроенная функция, переменные не рекомендуется называтьdict。

Ключи должны быть уникальными, а значения — нет.
Значения могут быть любого типа данных, но ключи должны быть неизменяемыми, например строки или числа.
Простой пример словаря:
tinydict = {'name': 'example', 'likes': 123, 'url': 'www.example.com'}

Вы также можете создать словарь так:
tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }
Создайте пустой словарь
Используйте фигурные скобки{ }для создания пустого словаря:
Пример
emptyDict = {}
# Вывести словарь
print(emptyDict)
# Проверить количество элементов словаря
print("Length:", len(emptyDict))
# Проверить тип
print(type(emptyDict))
Приведённый выше пример выводит:
{}
Length: 0
<class 'dict'>
Используйте встроенную функциюdict()для создания словаря:
Пример
# Вывести словарь
print(emptyDict)
# Проверить количество элементов словаря
print("Length:",len(emptyDict))
# Проверить тип
print(type(emptyDict))
Приведённый выше пример выводит:
{}
Length: 0
<class 'dict'>
Доступ к значениям в словаре
Поместите соответствующий ключ в квадратные скобки, как в примере ниже:
Пример
Приведённый выше пример выводит:
tinydict['Name']: Example tinydict['Age']: 7
Если вы обращаетесь к данным с ключом, которого нет в словаре, будет выведена ошибка следующим образом:
Пример
Приведённый выше пример выводит:
Traceback (most recent call last):
File "test.py", line 5, in <module>
print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'
Изменение словаря
Способ добавить новое содержимое в словарь — это добавить новые пары ключ/значение, либо изменить или удалить существующие пары ключ/значение, как в следующем примере:
Пример
tinydict['Age']: 8 tinydict['School']: Example
Удаление элементов словаря
Вы можете удалить отдельный элемент или очистить словарь; для очистки требуется только одна операция.
Явно удалить словарь с помощью команды del, как в следующем примере:
Пример
Но это вызовет исключение, потому что после операции del словарь больше не существует:
Traceback (most recent call last):
File "/example-test/test.py", line 9, in <module>
print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined
Примечание:Метод del() также будет рассмотрен позже.
Характеристики ключей словаря
Значения словаря могут быть любым объектом Python, как стандартным, так и пользовательским, а ключи — нет.
Нужно запомнить два важных момента:
1) Один и тот же ключ не может встречаться дважды. При создании, если одному и тому же ключу дважды присваивается значение, будет запомнено последнее значение, как в следующем примере:
Пример
Приведённый выше пример выводит:
tinydict['Name']: 小Example
2) Ключи должны быть неизменяемыми, поэтому можно использовать числа, строки или кортежи, но не списки, как в следующем примере:
Пример
Приведённый выше пример выводит:
Traceback (most recent call last):
File "test.py", line 3, in <module>
tinydict = {['Name']: 'Example', 'Age': 7}
TypeError: unhashable type: 'list'
Встроенные функции и методы словаря
Словари Python содержат следующие встроенные функции:
| Нет. | Функция и описание | Пример |
|---|---|---|
| 1 | len(dict) Подсчитывает количество элементов словаря, то есть общее количество ключей. |
>>> tinydict = {'Name': 'Example', 'Age': 7, 'Class': 'First'}
>>> len(tinydict)
3
|
| 2 | str(dict) Выводит словарь в виде строкового представления, пригодного для печати. |
>>> tinydict = {'Name': 'Example', 'Age': 7, 'Class': 'First'}
>>> str(tinydict)
"{'Name': 'Example', 'Class': 'First', 'Age': 7}"
|
| 3 | type(variable) Возвращает тип входной переменной. Если переменная является словарём, возвращает тип словаря. |
>>> tinydict = {'Name': 'Example', 'Age': 7, 'Class': 'First'}
>>> type(tinydict)
<class 'dict'>
|
Словари Python содержат следующие встроенные методы:
| Нет. | Функция и описание |
|---|---|
| 1 | dict.clear() Удаляет все элементы словаря |
| 2 | dict.copy() Возвращает поверхностную копию словаря |
| 3 | dict.fromkeys() Создать новый словарь, используя элементы последовательности seq в качестве ключей словаря, а val — в качестве начального значения, соответствующего всем ключам словаря |
| 4 | dict.get(key, default=None) Вернуть значение указанного ключа. Если ключа нет в словаре, вернуть значение по умолчанию, заданное параметром default. |
| 5 | key in dict Вернуть true, если ключ есть в словаре dict, иначе вернуть false. |
| 6 | dict.items() Вернуть объект представления в виде списка |
| 7 | dict.keys() Вернуть объект представления |
| 8 | dict.setdefault(key, default=None) Аналогично get(), но если ключа нет в словаре, ключ будет добавлен, а его значение установлено в default. |
| 9 | dict.update(dict2) Обновить словарь dict парами ключ/значение из словаря dict2. |
| 10 | dict.values() Вернуть объект представления |
| 11 | dict.pop(key[,default]) Удалить значение, соответствующее ключу в словаре, и вернуть удалённое значение. |
| 12 | dict.popitem() Вернуть и удалить последнюю пару ключ-значение в словаре. |