Вставить в deque O (1) сложность - PullRequest
0 голосов
/ 29 февраля 2020

мой код использования deque python. Код перебирает деку, находит индекс для помещения элемента и затем помещает элемент в указатель c index с помощью insert (index). Вставка deque итерирует по deque снова и находит место. Но итерация вставки не нужна, потому что я уже повторяю в deque. Могу ли я выполнить вставку O (1), если я уже перебираю деку для поиска индекса, в который я хочу поместить новый элемент?

from _collections import  deque

def append(self, id):
    if len(self.collection) == 0:
        self.collection.append(id)
    else:
        i = 0
        order = self.order_manager.map.get(id)
        for item in self.collection:
            item_obj = self.order_manager.map.get(item)
            if item_obj.priority >= order.priority:
                i = i+1
            else:
                break
        self.collection.insert(i, id)
...