Словари¶
Словари в Python - неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.
Создание словарей¶
Чтобы работать со словарём, его нужно создать. Сделать это можно несколькими способами. Во-первых, с помощью литерала:
1 2 3 4 5 6 |
|
Во-вторых, с помощью функции dict
:
1 2 3 4 5 6 |
|
В-третьих, с помощью метода fromkeys
:
1 2 3 4 5 6 |
|
В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков.
1 2 3 |
|
Теперь попробуем добавить записей в словарь и извлечь значения ключей:
1 2 3 4 5 6 7 8 9 10 11 |
|
Как видно из примера, присвоение по новому ключу расширяет словарь, присвоение по существующему ключу перезаписывает его, а попытка извлечения несуществующего ключа порождает исключение. Для избежания исключения есть специальный метод (см. ниже), или можно перехватывать исключение.
Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы for
и while
), а также специальные методы словарей.
Методы словарей¶
dict.clear()
- очищает словарь.
dict.copy()
- возвращает копию словаря.
classmethod dict.fromkeys(seq[, value])
- создает словарь с ключами из
seq
и значениемvalue
(по умолчаниюNone
). dict.get(key[, default])
- возвращает значение ключа, но если его нет, не бросает исключение, а возвращает
default
(по умолчаниюNone
). dict.items()
- возвращает пары (ключ, значение).
dict.keys()
- возвращает ключи в словаре.
dict.pop(key[, default])
- удаляет ключ и возвращает значение. Если ключа нет, возвращает
default
(по умолчанию бросает исключение). dict.popitem()
- удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение
KeyError
. Помните, что словари неупорядочены. dict.setdefault(key[, default])
- возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ со значением
default
(по умолчаниюNone
). dict.update([other])
- обновляет словарь, добавляя пары (ключ, значение) из
other
. Существующие ключи перезаписываются. ВозвращаетNone
(не новый словарь!). dict.values()
- возвращает значения в словаре.