Словарь, или как ещё говорят, ассоциативный массив — тип данных, представляющий собой коллекцию пар "ключ-значение". В рамках одного словаря ключи не повторяются.
Коллекции, о которых говорилось ранее, а именно — списки и кортежи — упорядочены и хранят элементы в том порядке, в котором они были добавлены. Словарь же не таков: он не запоминает порядок добавления элементов и вместо этого сохраняет элементы так, чтобы операции над содержимым словаря были максимально эффективны!
Строго говоря, в Python 3, начиная с версии 3.7, поменялось внутреннее устройство словарей: начиная с этой версии словари помнят, в каком порядке ключи добавлялись. Однако "завязывать" логику на этом свойстве не стоит — для хранения порядка чего-либо больше подходят списки.
Элементы списка или кортежа индексированы и позиция каждого элемента представляет собой число — порядковый номер от начала коллекции. Ключами же словаря могут быть не только числа, но и многие другие типы данных, чаще всего — строки. И если индексы списка и кортежа монотонны — идут без пропусков, у соседних элементов отличаются на единицу, то никаких особых закономерностей между ключами словаря нет (кроме гарантии уникальности).
Обычно списки гомогенны, т.е. хранят элементы одного типа. Словари же, напротив, чаще всего гетерогенны: отличаться могут как типы значений, так и типы ключей — да, бывает и такое, хоть и редко :)
В словарях удобно сохранять наборы сведений о некоей сущности. Скажем, пользователь может обладать никнеймом, возрастом, адресом электронной почты. И все эти данные можно сохранить в одном словаре:
user = {
'name': 'superbob',
'email': 'bob.is.super@mail.com',
'age': 35
}
Так выглядит литерал словаря. Здесь 'name'
, 'email'
и 'age'
— ключи словаря, а 35
и 'superbob'
— очевидно, значения.
Подобным образом с помощью словарей можно описывать любые сущности предметной области, например, заказ, курс, урок, топик на форуме, комментарий в проекте. В каждом случае будет своя структура, зависящая от тех свойств, которыми описывается конкретная сущность.
Кроме того, словари используются как хранилища для конфигурационных параметров или как способ передать в функцию множество разнородных данных в виде одного параметра.
Вам ответят команда поддержки Хекслета или другие студенты.
Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.
Загляните в раздел «Обсуждение»:
Статья «Ловушки обучения»
Вебинар «Как самостоятельно учиться»
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт