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