Словари используются для сохранения значений данных в виде пар key:value. Словари являются наборами элементов, которые упорядочены (начиная с версии Python 3.7; для версии Python 3.6 и более старых версий словари являются не упорядоченными), значения в словаре (value) можно изменять по ключу (key), и в словаре запрещено иметь дубликаты по ключу (все ключи в словаре должны быть уникальны).
Когда мы говорим, что словари упорядочены (начиная с версии Python 3.7), это означает, что элементы в словаре key:value имеют определенный порядок, заданный в момент их создания, и порядок следования элементов не может быть изменен. К элементам словаря можно обращаться не только по ключу, но и по индексу.
"Не упорядоченность" для словаря (версии Python 3.6 и более старые) означает, что у элементов нет определенного порядка следования элементов друг за другом, и к ним нельзя обращаться по индексу.
К элементам словаря можно обращаться по ключу, например:
Таким образом, при попытке добавить дубликат в словарь старое значение с таким же ключом отбрасывается и заменяется на новое значение.
Длина словаря. Точно так же, как у множеств и списков, длина словаря это количество элементов в нем. Длина может быть получена с помощью функции len(). Например:
print(len(thisdict))
Этот код напечатает:
3
Типы данных словаря. Значения в словаре могут быть любого типа, допустимы даже списки.
Существует 4 типа коллекций данных на языке программирования Python:
• List. Список: это коллекция элементов данных, которые упорядочены и изменяемы. Допускается использовать дубликаты элементов, и элементы могут быть любого типа.
• Tuple. Кортеж: это коллекция элементов данных, которые упорядочены и неизменяемы. Допускается использовать дубликаты элементов, и элементы могут быть любого типа.
• Set. Множество: это коллекция элементов данных, которые неупорядочены, незменяемы(1) и неиндексируемы. Не допускаются дубликаты элементов, и элементы могут быть любого типа (см. [2]).
• Dictionary. Словарь: это коллекция упорядоченных(2) элементов данных, которые допускается менять. Значения в словаре могут быть любого типа, не допускаются дубликаты элементов.
Примечания:
(1) Здесь "неизменяемость" означает, что значение отдельного элемента созданного множества поменять нельзя. Однако можно есть возможность удалять элементы из множества, а также добавлять в него новые элементы. (2) Начиная с версии Python 3.7 словари упорядочены. В Python 3.6 и более старых версий словари не упорядочены.
При выборе типа коллекции нужно понимать свойства каждого типа. Выбор правильного типа для определенных данных может означать сохранение смысла в коде, повышение его эффективности и безопасности.