№12 Словарь (dict) / Уроки по Python для начинающих
Словарь — неупорядоченная последовательность, гибким к изменениям и индексированным. В Python словари пишутся в фигурных скобках, и состоят из ключей и значений.
Создадим и выведем словарь:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > print(thisdict)
Доступ к элементам
Вы можете получить доступ к элементам словаря ссылаясь на его ключевое название.
Получим значение по ключу “model” :
Существует так же метод под названием get() который даст вам тот же результат.
Изменить значение
Вы можете поменять значение указанного элемента ссылаясь на ключевое название.
Поменяем “year” на “2018”:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > thisdict["year"] = 2018 print(thisdict)
Цикл for по словарю
При проходе по словарю вы получите его ключи, но так же есть методы для возврата значений.
Выведем один за другим все ключи словаря:
Выведем значения словаря, один за одним:
for x in thisdict: print(thisdict[x])
Вы так же можете использовать функцию values() для возврата значений словаря:
for x in thisdict.values(): print(x)
Пройдем по ключам и значениям, используя функцию items() :
for x, y in thisdict.items(): print(x, y)
brand Ford model Mustang year 1964
Длина словаря
Для того, чтобы определить сколько элементов есть в словаре, используйте метод len() .
Добавление элементов
Добавление элементов в словарь выполняется с помощью нового ключа:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > thisdict["color"] = "red" print(thisdict)
Удаление элементов
Существует несколько методов удаления элементов из словаря.
Метод pop() удаляет элемент по ключу и возвращает его:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > thisdict.pop("model")
Метод popitem() удаляет последний элемент:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > thisdict.popitem()
Ключевое слово del удаляет элемент по ключу:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > del thisdict["model"] print(thisdict)
Ключевое слово del может так же удалить полностью весь словарь:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > del thisdict print(thisdict) #это вызывает ошибку, так как "thisdict" больше не существует.
Ключевое слово clear() очищает словарь:
thisdict = "brand": "Ford", "model": "Mustang", "year": 1964 > thisdict.clear() print(thisdict)
Конструктор dict()
Вы так же можете использовать конструктор dict() для создания нового словаря.
thisdict = dict(brand="Ford", model="Mustang", year=1964) # обратите внимание, ключевые слова не являются строками # обратите внимание на использование "рвно", вместо двоеточия для задания print(thisdict)
Методы словаря
В Python существует набор встроенных методов, с помощью которых вы можете работать со словарями.
Метод | Значение |
---|---|
clear() | Удаляет все элементы из словаря |
copy() | Делает копию словаря |
fromkeys() | Возвращает словарь с указанными ключами и значениями |
get() | Возвращает значение по ключу |
items() | Возвращает список, содержащий tuple для каждой пары ключ-значение |
keys() | Возвращает список, содержащий ключи словаря |
pop() | Удаляет элементы по ключу |
popitem() | Удаляет последнюю пару ключа со значением |
setdefault() | Задает значение по ключу. Если ключа нет в словаре, добавляет его с указанным значением или None |
update() | Обновляет словарь, добавляя пары ключ-значение |
values() | Возвращает список всех значений в словаре |
Словари (dict) и работа с ними. Методы словарей
Сегодня я расскажу о таком типе данных, как словари, о работе со словарями, операциях над ними, методах, о генераторах словарей.
Словари в Python — неупорядоченные коллекции произвольных объектов с доступом по ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.
Чтобы работать со словарём, его нужно создать. Сделать это можно несколькими способами. Во-первых, с помощью литерала:
Во-вторых, с помощью функции dict:
В-третьих, с помощью метода fromkeys:
В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы списков.
Теперь попробуем добавить записей в словарь и извлечь значения ключей:
: Как видно из примера, присвоение по новому ключу расширяет словарь, присвоение по существующему ключу перезаписывает его, а попытка извлечения несуществующего ключа порождает исключение. Для избежания исключения есть специальный метод (см. ниже), или можно перехватывать исключение.
Что же можно еще делать со словарями? Да то же самое, что и с другими объектами: встроенные функции, ключевые слова (например, циклы 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() — возвращает значения в словаре.
Для вставки кода на Python в комментарий заключайте его в теги