Учебники

Python — словарь

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

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

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

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

Live Demo

#!/usr/bin/python

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/python

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

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

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

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

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

Live Demo

#!/usr/bin/python

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/python

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/python

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

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

dict['Name']:  Manni

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

Live Demo

#!/usr/bin/python

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: unhashable type: 'list'

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

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

Sr.No. Функция с описанием
1 cmp (dict1, dict2)

Сравнивает элементы обоих dict.

2 Len (ДИКТ)

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

3 ул (ДИКТ)

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

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

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

Сравнивает элементы обоих dict.

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

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

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

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

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

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

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

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

Возвращает true, если ключ в словаре dict , false в противном случае

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

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

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

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

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