Учебники

Python 3 — словарь

Каждый ключ отделяется от его значения двоеточием (:), элементы разделяются запятыми, а все это заключено в фигурные скобки. Пустой словарь без каких-либо элементов пишется с помощью двух фигурных скобок, например: {}.

Ключи являются уникальными в словаре, в то время как значения могут не быть. Значения словаря могут быть любого типа, но ключи должны быть неизменного типа данных, такого как строки, числа или кортежи.

Доступ к значениям в словаре

Чтобы получить доступ к элементам словаря, вы можете использовать знакомые квадратные скобки вместе с ключом, чтобы получить его значение. Ниже приведен простой пример —

Live Demo

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

Когда приведенный выше код выполняется, он дает следующий результат —

dict['Name']:  Zara
dict['Age']:  7

Если мы пытаемся получить доступ к элементу данных с ключом, который не является частью словаря, мы получаем ошибку следующим образом:

Live Demo

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])

Когда приведенный выше код выполняется, он дает следующий результат —

dict['Zara']:
Traceback (most recent call last):
   File "test.py", line 4, in <module>
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

Обновление словаря

Вы можете обновить словарь, добавив новую запись или пару ключ-значение, изменив существующую запись или удалив существующую запись, как показано в простом примере, приведенном ниже.

Live Demo

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Когда приведенный выше код выполняется, он дает следующий результат —

dict['Age']:  8
dict['School']:  DPS School

Удалить элементы словаря

Вы можете удалить отдельные элементы словаря или очистить все содержимое словаря. Вы также можете удалить весь словарь за одну операцию.

Чтобы явно удалить весь словарь, просто используйте оператор del . Ниже приведен простой пример —

Live Demo

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name'] # remove entry with key 'Name'
dict.clear()     # remove all entries in dict
del dict         # delete entire dictionary

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Это дает следующий результат.

Возникает исключение, потому что после del dict словарь больше не существует.

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Примечание. Метод del () обсуждается в следующем разделе.

Свойства словарных ключей

Значения словаря не имеют ограничений. Это может быть любой произвольный объект Python, либо стандартные объекты, либо определяемые пользователем объекты. Однако то же самое не относится к ключам.

Есть два важных момента, которые следует помнить о словарных ключах —

(а) Более одной записи на ключ не допускается. Это означает, что дубликат ключа не допускается. Когда дубликаты ключей встречаются во время назначения, выигрывает последнее назначение. Например —

Live Demo

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])

Когда приведенный выше код выполняется, он дает следующий результат —

dict['Name']:  Manni

(б) Ключи должны быть неизменными. Это означает, что вы можете использовать строки, числа или кортежи в качестве ключей словаря, но что-то вроде [‘key’] не допускается. Ниже приведен простой пример —

Live Demo

#!/usr/bin/python3

dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])

Когда приведенный выше код выполняется, он дает следующий результат —

Traceback (most recent call last):
   File "test.py", line 3, in <module>
      dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable

Встроенные словарные функции и методы

Python включает в себя следующие функции словаря —

Sr.No. Описание функции
1 cmp (dict1, dict2)

Больше не доступен в Python 3.

2 Len (ДИКТ)

Дает общую длину словаря. Это будет равно количеству элементов в словаре.

3 ул (ДИКТ)

Создает печатное строковое представление словаря

4 Тип (переменная)

Возвращает тип переданной переменной. Если переданная переменная является словарем, то она возвращает тип словаря.

Больше не доступен в Python 3.

Дает общую длину словаря. Это будет равно количеству элементов в словаре.

Создает печатное строковое представление словаря

Возвращает тип переданной переменной. Если переданная переменная является словарем, то она возвращает тип словаря.

Python включает следующие словарные методы —

Удаляет все элементы словаря dict

Возвращает мелкую копию словаря dict

Создайте новый словарь с ключами из seq и значениями, установленными в значение .

Для ключа key возвращает значение или значение по умолчанию, если ключ отсутствует в словаре

Удалено, используйте вместо операции.

Возвращает список пар кортежей dict (ключ, значение)

Возвращает список ключей словаря dict

Аналогичен get (), но установит dict [ключ] = по умолчанию, если ключ еще не в dict

Добавляет пары словарь-значение dict2 в dict

Возвращает список значений словаря dict