Python

Python OrderedDict

Python OrderedDict

Структуры данных являются важными компонентами любого языка программирования, которые эффективно хранят данные и управляют ими. Python предоставляет множество встроенных структур данных, я.е., списки, кортежи и словари, которые помогают программистам создавать эффективные приложения. Словари Python хранят данные в парах ключ-значение. OrderedDict является подклассом класса dict и поддерживает порядок ключей, которые были вставлены в. Это единственное различие между dict и OrderDict. Диктант не поддерживает порядок ключей.

OrderedDict сохраняет порядок вставки ключей, и когда мы перебираем OrderedDict, он возвращает ключи в том же порядке. С другой стороны, когда итерация выполняется над dict, ключи возвращаются в случайном порядке. Однако словари теперь упорядочены в Python 3.6 и более поздних версий и возвращать значения в том же порядке, в котором они были вставлены. Класс OrderedDict существует в модуле коллекций. Поэтому, чтобы использовать класс OrderedDict, сначала импортируйте модуль коллекций. В этой статье подробно объясняется Python OrderedDict с примерами.

Примеры

Давайте создадим OrderedDict в нашем скрипте Python и добавим данные в виде ключей и значений. Items () - это встроенная функция Python, которая возвращает информацию о ключах и значениях.

# импорт модуля коллекций
импортные коллекции
#creating an OrderedDict
my_dict = коллекции.OrderedDict ()
my_dict ["A"] = 1
my_dict ["B"] = 2
my_dict ["C"] = 3
my_dict ["D"] = 4
# объявление цикла for для перебора OrderDict
для меня в my_dict.Предметы():
печать (я)

Выход

На выходе можно заметить, что OrderedDict возвращает ключи и значения так же, как и вставленные.

Теперь давайте создадим еще один OrderDict студента и сохраним в нем информацию о студенте.

# импорт модуля коллекций
импортные коллекции
#creating a OrderedDict of student
std_dict = коллекции.OrderedDict ()
std_dict ['name'] = 'Джон'
std_dict ['возраст'] = 23
std_dict ['email'] = '[электронная почта защищена]'
std_dict ['класс'] = 'BS'
# объявление цикла for для перебора OrderDict
для я в std_dict.Предметы():
печать (я)

Выход

Изменение значений ключей

Мы можем изменить значение конкретного ключа OrderedDict. Если мы изменим значение любого конкретного ключа, порядок ключей останется прежним в OrderDict. Давайте изменим значение возраста в ученике OrderDict.

# импорт модуля коллекций
импортные коллекции
#creating a OrderedDict of student
std_dict = коллекции.OrderedDict ()
std_dict ['name'] = 'Джон'
std_dict ['возраст'] = 23
std_dict ['email'] = '[электронная почта защищена]'
std_dict ['класс'] = 'BS'
print ("Порядок ключей до изменения значения возраста:")
# объявление цикла for для перебора OrderDict
для я в std_dict.Предметы():
печать (я)
# изменение значения возраста
std_dict ['age'] = 25
print ("Порядок ключей после изменения значения возраста:")
для я в std_dict.Предметы():
печать (я)

Выход

Выходные данные показывают, что порядок ключей остается неизменным, когда мы меняем значение определенного ключа.

Удаление значения из OrderedDict

Удаление значений из OrderDict не меняет порядок ключей. Если мы удалим определенный ключ и снова вставим его, то он будет добавлен в конце. Давайте посмотрим на пример. Мы удалим ключ 'age' из студенческого словаря, а затем снова вставим его.

# импорт модуля коллекций
импортные коллекции
#creating a OrderedDict of student
std_dict = коллекции.OrderedDict ()
std_dict ['name'] = 'Джон'
std_dict ['возраст'] = 23
std_dict ['email'] = '[электронная почта защищена]'
std_dict ['класс'] = 'BS'
print ("Порядок ключей до изменения значения возраста:")
# объявление цикла for для перебора OrderDict
для я в std_dict.Предметы():
печать (я)
# удаление возрастного ключа
дель std_dict ['возраст']
print ("Порядок ключей после удаления ключа возраста:")
для я в std_dict.Предметы():
печать (я)
# повторная вставка ключа возраста и значения
std_dict ['возраст'] = 23
print ("Порядок ключей после повторной вставки ключа возраста:")
для я в std_dict.Предметы():
печать (я)

Выход

На выходе видно, что когда мы повторно вставляем ключ, он вставляется в конце.

Заключение

OrderedDict - это подкласс dict, который упорядочивает ключи по порядку и сохраняет порядок при их вставке. Класс OrderedDict является частью модуля коллекций. В этой статье объясняется OrderedDict и его функции с примерами.

Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...