словари в Python

Словари в Python

Словари… Тема, которая лично для меня оказалось одной из наиболее сложных во время изучения Python по курсу Нетологии. Не могу объяснить причину, но факт есть факт — словари в Python тема крайне важная, а значит — давайте разбираться в ней вместе!

Прежде всего нужно согласиться с тем, что словари в Python — не последовательность чего-либо, а лишь отображения, коллекции объектов, доступ к которым осуществляется по ключам.

Внешне словарь выделяется фигурными скобками {}, и состоит из пары ключ-значение. Пример самого простого словаря — ниже:

где:
distionary = {‘Еда’:’Яблоко’, ‘Цвет’:’Красный’}:
— distionary — название словаря
— { — начало словаря
— ‘Еда’:’Яблоко’ — пара: Ключ — Значение (Еда — ключ, Яблоко — значение)
— ‘Цвет’:’Красный’ — вторая пара: Ключ — Значение (Цвет — ключ, Красный — значение)
— print (distionary) — вывод словаря на экран

Можно создать словарь с помощью присваивания значения ключу. Кстати, в отличии от тех же списков, в которых присваивание значений несуществующим элементам запрещено, присваивание значения ключу, которого нет — приведет к его созданию. Давайте посмотрим на код:

Более подробно он выглядит следующим образом:
distionary = {} — создаем пустой словарь с названием distionary
print (distionary) — выводим его на экран — просто так, что бы убедиться, что он пуст 🙂
distionary[‘Имя’] = ‘Василий’ — вызываем словарь с названием distionary, и задаем ключ (помним, что ключа не существует!) ‘Имя’, и тут же задаем его значение — ‘Василий’
distionary[‘Фамилия’] = ‘Пупкин’ — вызываем словарь с названием distionary, и задаем ключ (помним, что ключа не существует!) ‘Фамилия’, и тут же задаем его значение — ‘Пупкин’
distionary[‘Возраст’] = 30 — вызываем словарь с названием distionary, и задаем ключ (помним, что ключа не существует!) ‘Возраст’, и тут же задаем его значение — 30
print (distionary) — выводим словарь на экран, что бы убедиться, что у нас появились ключи-значения
print (distionary[‘Имя’]) — выводим на экран значение ключа ‘Имя’ — компьютер выдает ‘Василий’
print (distionary[‘Фамилия’]) — выводим на экран значение ключа ‘Фамилия’ — компьютер выдает ‘Пупкин’
print (distionary[‘Возраст’]) — выводим на экран значение ключа ‘Возраст’ — компьютер выдает 30

Можно улучшить наш код, и используя функцию input (более подробно она рассматривалась в этой записи) организовать взаимодействие с пользователем (ранее я писал, что по какой-то причине формы запросов не работают в внедряемом на сайт коде, потому для проверки работоспособности кликните на эту ссылку — код откроется в новой вкладке, и будет активным):

Сам код в более подробном виде выглядит следующим образом:
distionary = {} — создаем пустой словарь с названием distionary
print (distionary) — выводим его на экран
distionary[‘Имя’] = str(input(‘Введите имя: ‘)) — запрашиваем у пользователя имя, значение которого будет привязано к ключу ‘Имя’
distionary[‘Фамилия’] = str(input(‘Введите фамилию: ‘)) — запрашиваем у пользователя фамилию, значение которой будет привязано к ключу ‘Фамилия’
distionary[‘Возраст’] = int(input(‘Введите возраст: ‘)) — запрашиваем у пользователя возраст, значение которого будет привязано к ключу ‘Возраст’
print (distionary) — выводим наш словарь на экран.

Как в случае со списками — у нас имеется возможность обработки словарей: например, мы можем обратиться к элементу словаря по ключу и изменить значение, к этому ключу привязанное. Как будет видно ниже — для доступа к элементам словаря используется синтаксис, который идентичен с синтаксисом для обращения к элементам словаря, только в отличии от словаря в квадратных скобках указывается не позиция элемента от начала, а ключ:

где:
distionary = {‘Еда’:’Яблоко’, ‘Цвет’:’Красный’} — словарь
print (distionary[‘Еда’]) — вывод на экран значения, привязанного к ключу «Еда», где print — команда вывода на экран, distionary — название словаря, Еда — ключ.
print (distionary[‘Цвет’]) — вывод на экран значения, привязанного к ключу «Цвет», где print — команда вывода на экран, distionary — название словаря, Цвет — ключ.

Кроме того — словари в Python имею возможность создания сложной структуры — в этом случае речь пойдет уже о вложенных словарей. Работа с вложенными словарями полностью идентична с работой со словарем вообще, только в этом случае доступ к элементам словаря будет осуществляться с указанием ключей словаря. Попробуем представить, что у нас имеется база данных учеников школьного класса, в котором кроме банальных имя-фамилия-возраст указывается еще и прозвище ученика. В этом случае в ключе ‘Имя’ у нас будет два значения — имя официальное, и прозвище. Посмотрим код:

где:
distionary = { — объявили словарь с названием distionary
‘имя’: {‘официальное’:’Василий’, ‘прозвище’:’Винни-Пух’}, — обозначили ключ ‘имя’ вложенным словарем (напоминаю, что словарь обозначается фигурными скобками) с ключами ‘официальное’ (значение — Василий) и ‘прозвище’ (значение — Винни-Пух)
‘фамилия’: ‘Пупкин’, — объявили ключ — ‘фамилия’ и указали его значение — ‘Пупкин’
‘возраст’: 15 — объявили ключ — ‘возраст’ и указали его значение — 15
} — закрыли словарь
print (distionary[‘имя’][‘прозвище’]) — выводим на экран значение ключа ‘имя’ — ключ ‘прозвище’ — значение ‘Винни-Пух’

Аналогично со списками — вложенные в словари списки можно расширять. Для этого используется все тот же метод append, а на практике это выглядит следующим образом:

где:
distionary = { — объявили словарь с названием distionary
‘имя’: {‘официальное’:’Василий’, ‘прозвище’:’Винни-Пух’}, — ключ — имя: значение — вложенный словарь с парами: официальное — Василий, прозвище — Винни-Пух
‘фамилия’: ‘Пупкин’, — пара ключ-значение: фамилия-Пупкин
‘изучаемые предметы’: {‘Основной курс’: ‘математика’, ‘Дополнительный курс’: ‘программирование’, ‘Свободное посещение’: ‘английский’}, ключ — изучаемые предметы — значение: вложенный словарь с парами: Основной курс — математика, Дополнительный курс — программирование, свободное посещение — английский
‘Хобби’: [‘литература’, ‘химия’], — пара ключ-значение: хобби — встроенный список со значениями: литература, химия
‘возраст’: 15 — пара ключ — значение: возраст: 15
}
distionary[‘Хобби’].append(‘музыка’) — команда на добавление данных в словарь distionary в ключ ‘Хобби’ значения ‘музыка’
print (distionary) — вывод словаря на экран.

В следующей записи мы с вами попробуем разобраться в сортировке по ключам. Обещаю — будет весело!
Спасибо за внимание. В случае возникновения вопросов — пишите.

Понравилась запись? Сделайте репост на свою страницу!