Wenn Sie Python 2.x verwenden, deque
keine gute Wahl ist, wenn Sie Lookup tun wollen. Sie können entweder list
oder gehen Sie wie folgt mit enumerate()
verwenden:
>>> def index(element, queue):
... for i, ele in enumerate(queue):
... if ele == element:
... return i
... raise ValueError("{} is not in queue".format(element))
>>> index(2, deque([1, 2, 3, 4]))
1
Alternativ können Sie Ihre eigene Warteschlange implementieren:
>>> class IndexedDeque(deque):
... def index(self, element):
... for i, ele in enumerate(self):
... if ele == element:
... return i
... raise ValueError("{} is not in queue".format(element))
>>> d_list = IndexedDeque([1, 2, 3, 4])
>>> d_list.index(2)
1
können wir aus der Warteschlange an einer gewünschten Position zu entfernen? oder können wir nur von *** popleft() *** entfernen? – Madhi