Рубрики
Без рубрики

Модуль коллекций Python: заказ

Почему нам нужен упорядоченный Anway? С момента словарей в Python поддерживают их вставку … Теги с Python, CodeNewie, коллекции.

Почему нам нужен упорядоченный Anway?

С момента словарей в Python поддерживают их заказ полностью после Python 3.7+ Используйте случай ЗаказДикт медленно исчезает. Но все же есть несколько помощников и функций, которые мы можем использовать при использовании упорядоченных обязательств.

Создание упорядоченности

С тех пор это Дикт подкласс. Он может использовать все функциональные возможности словаря. Давайте обсудим некоторые важные методы, относящиеся к ЗаказДикт Только.

метод поптема

PopiTem (последний) Метод для упорядоченных словарей возвращается и удаляет (ключ, значение) пара.

Пары возвращаются,

  1. Lastinfirstout (lifo) Заказать, если последнее это правда Отказ То есть Последнее пара выскочина. (по умолчанию)
  2. 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”