Почему нам нужен упорядоченный Anway?
С момента словарей в Python поддерживают их заказ полностью после Python 3.7+ Используйте случай ЗаказДикт
медленно исчезает. Но все же есть несколько помощников и функций, которые мы можем использовать при использовании упорядоченных обязательств.
Создание упорядоченности
С тех пор это Дикт
подкласс. Он может использовать все функциональные возможности словаря. Давайте обсудим некоторые важные методы, относящиеся к ЗаказДикт
Только.
метод поптема
PopiTem (последний)
Метод для упорядоченных словарей возвращается и удаляет (ключ, значение) пара.
Пары возвращаются,
- Lastinfirstout (lifo) Заказать, если последнее это правда Отказ То есть Последнее пара выскочина. (по умолчанию)
- Firstinfirstout (FIFO) Заказать, если ложный . То есть Первый Пара выскакивается.
from collections import OrderedDict ord_dict = OrderedDict({"fname": "The", "lname": "CodeBlooded", "founder": "A Geek", "Ran by": "Geeks"}) last_pair = ord_dict.popitem() # last=True by default first_pair = ord_dict.popitem(last=False) print(f'last pair: {last_pair}') print(f'first pair: {first_pair}') """OUTPUT last pair: ('Ran by', 'Geeks') first pair: ('fname', 'The') """
move_to_end. метод
move_to_end (ключ,)
Перемещает существующий ключ к любому концу упорядоченного словара.
Элемент перемещается вправо, если последний верно (по умолчанию) или к началу, если последний не является ложным.
from collections import OrderedDict ord_dict = OrderedDict({"fname": "The", "lname": "CodeBlooded", "founder": "A Geek", "Ran by": "Geeks"}) print(f'Before =>\n{ord_dict}') # move to right-most end ord_dict.move_to_end('founder') # move to left-most end ord_dict.move_to_end('Ran by', last=False) print(f'After =>\n{ord_dict}') """OUTPUT Before => OrderedDict([('fname', 'The'), ('lname', 'CodeBlooded'), ('founder', 'A Geek'), ('Ran by', 'Geeks')]) After => OrderedDict([('Ran by', 'Geeks'), ('fname', 'The'), ('lname', 'CodeBlooded'), ('founder', 'A Geek')]) """
💡 KeyError поднят, если данный ключ нет в словаре.
И это обернет нашу дискуссию на ЗаказДикт
Действительно Если вы заметите все классы коллекций, которые мы обсуждали до сих пор Дикт
Подкласс, не так ли? Завет, насколько мощных словарей в Python являются 😎
Оригинал: “https://dev.to/kathanvakharia/python-s-collections-module-orderddict-30ia”