Найти тему
Журнал разработчика

Запись 19. Словари

Все знакомы со словарями. В их основу положены пары, например, англо-русский словарь содержит пары английское слово / русский эквивалент, толковый словарь также содержит пары термин / описание. Вот и в Python словарь тоже позволяет хранить пары значений, точнее ключ и значение. Перейдём к примерам.

Давайте попробуем описать модель автомобиля, очень просто, например:

  • марка: audi
  • максимальная скорость: 250 км/ч
  • цвет: чёрный

Достаточно, а теперь превратим эту модель в словарь, точнее опишем с помощью словаря Python.

Словарь оформляется фигурными скобками, внутри которых через запятую указываются пары <ключ: значение>. Между собой ключ и значения разделяются двоеточием.

В нашем случае ключами будут названия характеристик. Приступим, создадим словарь car с вышеуказанными характеристиками.

Обратите внимание, что ключи являются строками, т.е. должны быть в апострофах, также как и некоторые значения. Попробуем вывести созданный словарь.

-2
-3

Всё получилось, правда выглядит пока не очень. Для начала научимся обращаться к определённому значению словаря. Допустим нам надо вывести цвет машины. Обратимся к словарю по имени car, а в качестве индекса укажем необходимый ключ color.

-4
-5

Вывод: доступ к значениям словаря осуществляется по ключам.

Теперь попробуем изменить значение, с доступом же мы уже разобрались. Допишем ещё пару строк.

-6
-7

Ещё один вывод: словари являются изменяемыми структурами.

В целом ключи похожи на индексы у списков. Но индексами списков могут быть только целые числа, а вот ключами словарей могут быть и числа (обоих типов), и строки, и даже True и False.

Важно! В одном словаре не может быть двух одинаковых ключей.

Для словарей существуют специальные методы:

  • keys() – выводит ключи словаря
  • values() – выводит значения словаря

Попробуем их применить к нашему автомобилю:

-8
Получили отдельно ключи, отдельно значения
Получили отдельно ключи, отдельно значения

Немного украсим вывод, добавим метод join().

-10
Получили список ключей через запятую
Получили список ключей через запятую

Кстати, если сейчас попробовать аналогично вывести значения, то это приведёт к ошибке, т.к. среди значений есть число, а join() работает только со строками.

Ну и напоследок выведем полную информацию об автомобиле:

-12
-13

На этом пока и остановимся. Если есть вопросы, пишите в комментариях, будем разбираться.