Python - Словарь
Каждый ключ отделяется от своего значения двоеточием (:), элементы разделяются запятыми, и все это заключено в фигурные скобки. Пустой словарь без каких-либо элементов записывается с помощью двух фигурных скобок, например: {}.
Ключи в словаре уникальны, а значения могут не быть. Значения словаря могут быть любого типа, но ключи должны иметь неизменяемый тип данных, такой как строки, числа или кортежи.
Доступ к значениям в словаре
Для доступа к элементам словаря вы можете использовать знакомые квадратные скобки вместе с ключом, чтобы получить его значение. Ниже приводится простой пример -
#!/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
Если мы попытаемся получить доступ к элементу данных с помощью ключа, который не является частью словаря, мы получим следующую ошибку:
#!/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'
Обновление словаря
Вы можете обновить словарь, добавив новую запись или пару ключ-значение, изменив существующую запись или удалив существующую запись, как показано ниже в простом примере:
#!/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заявление. Ниже приводится простой пример -
#!/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
Note - метод del () обсуждается в следующем разделе.
Свойства ключей словаря
Словарные значения не имеют ограничений. Они могут быть любым произвольным объектом Python, либо стандартными объектами, либо объектами, определяемыми пользователем. Однако это не относится к ключам.
О ключах словаря нужно помнить два важных момента:
(a)Не допускается более одной записи на ключ. Это означает, что дублирование ключа не допускается. Если во время назначения встречаются повторяющиеся ключи, выигрывает последнее назначение. Например -
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']
Когда приведенный выше код выполняется, он дает следующий результат:
dict['Name']: Manni
(b)Ключи должны быть неизменными. Это означает, что вы можете использовать строки, числа или кортежи в качестве ключей словаря, но что-то вроде ['key'] недопустимо. Ниже приводится простой пример -
#!/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 | тип (переменная) Возвращает тип переданной переменной. Если переданной переменной является словарь, она вернет тип словаря. |
Python включает следующие словарные методы -
Sr.No. | Методы с описанием |
---|---|
1 | dict.clear () Удаляет все элементы словаря dict |
2 | dict.copy () Возвращает мелкую копию словаря dict |
3 | dict.fromkeys () Создайте новый словарь с ключами из seq и значениями, установленными в значение . |
4 | dict.get (ключ, по умолчанию = Нет) Для ключевого ключа возвращает значение или значение по умолчанию, если ключ не в словаре |
5 | dict.has_key (ключ) Возвращает true, если ключ в словаре dict , иначе false. |
6 | dict.items () Возвращает список пар кортежей dict (ключ, значение) |
7 | dict.keys () Возвращает список ключей словаря dict |
8 | dict.setdefault (ключ, по умолчанию = Нет) Аналогично get (), но установит dict [key] = default, если ключ еще не находится в dict |
9 | dict.update (dict2) Добавляет пары "ключ-значение" словаря dict2 в dict |
10 | dict.values () Возвращает список словаря Dict значений «s |