Структуры данных являются важными компонентами любого языка программирования, которые эффективно хранят данные и управляют ими. Python предоставляет множество встроенных структур данных, например списков, кортежей и словарей, которые помогают программистам создавать эффективные приложения. Словари Python хранят данные в парах ключ-значение. OrderedDict является подклассом класса dict и поддерживает порядок вставленных ключей. Это единственное различие между dict и OrderDict. Диктовка не поддерживает порядок ключей.
OrderedDict сохраняет порядок вставки ключей, и когда мы перебираем OrderedDict, он возвращает ключи в том же порядке. С другой стороны, когда итерация выполняется для dict, ключи возвращаются в случайном порядке. Однако словари теперь упорядочены в версиях Python 3.6 и выше и возвращают значения в том же порядке, в котором они были вставлены. Класс OrderedDict существует в модуле коллекций. Поэтому, чтобы использовать класс OrderedDict, сначала импортируйте модуль collections. Эта статья подробно объясняет Python OrderedDict с примерами.
Давайте создадим OrderedDict в нашем скрипте Python и добавим данные в виде ключей и значений. Items() – это встроенная функция Python, которая возвращает информацию о ключах и значениях.
# импорт модуля коллекций import collections # создание OrderedDict my_dict = collections.OrderedDict() my_dict["A"]=1 my_dict["B"]=2 my_dict["C"]=3 my_dict["D"]=4 # объявление цикла for для перебора OrderDict for i in my_dict.items(): print(i)
В выводе можно заметить, что OrderedDict возвращает ключи и значения в том же виде, что и вставленные.
Теперь давайте создадим еще один OrderDict студента и сохраним в нем информацию о студенте.
# импорт модуля import collections # создание OrderedDict студента std_dict = collections.OrderedDict() std_dict['name']='AndreyEx' std_dict['age']=23 std_dict['email']='AndreyEx@example.ru' std_dict['class']='BS' # объявление цикла for для перебора OrderDict for i in std_dict.items(): print(i)
Мы можем изменить значение конкретного ключа OrderedDict. Если мы изменим значение любого конкретного ключа, порядок ключей останется таким же в OrderDict. Давайте изменим значение возраста в студенте OrderDict.
# импорт модуля коллекций import collections # создание OrderedDict студента std_dict = collections.OrderedDict() std_dict['name']='AndreyEx' std_dict['age']=23 std_dict['email']='AndreyEx@example.ru' std_dict['class']='BS' print ( "Порядок ключей перед изменением значения возраста: " for i in std_dict.items(): print(i) # изменение значения возраста std_dict['age']=25 print ( "Порядок ключей после изменения значения возраста:" ) for i in std_dict.items(): print(i)
Выходные данные показывают, что порядок ключей остается неизменным, когда мы изменяем значение определенного ключа.
Удаление значений из OrderDict не меняет порядок ключей. Если мы удалим определенный ключ и снова вставим его, он будет добавлен в конце. Давайте посмотрим на пример. Мы удалим ключ «возраст» из студенческого словаря, а затем снова вставим его.
# импорт модуля коллекций import collections # создание OrderedDict студента std_dict = collections.OrderedDict() std_dict['name']='AndreyEx' std_dict['age']=23 std_dict['email']='AndreyEx@example.ru' std_dict['class']='BS' print ( "Порядок ключей перед изменением значения возраста: " for i in std_dict.items(): print(i) # удаление ключа возраста del std_dict['age'] print ( "Порядок ключей после удаления ключа возраста:" ) for i in std_dict.items(): print(i) # повторная вставка ключа возраста и значения std_dict['age']=23 print ( "Порядок ключей после повторной вставки ключа возраста:") for i in std_dict.items(): print(i)
В выводе можно увидеть, что когда мы повторно вставляем ключ, он вставляется в конце.
OrderedDict – это подкласс dict, который упорядочивает ключи по порядку и сохраняет порядок при их вставке. Класс OrderedDict является частью модуля коллекций. Эта статья объясняет OrderedDict и его функциональные возможности с примерами.