Если вы используете Python 2.x, deque
не является хорошим выбором, если вы хотите сделать поиск. Вы можете использовать list
или выполните следующие действия с помощью enumerate()
:
>>> 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
В качестве альтернативы, вы можете реализовать свою собственную очередь:
>>> 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
мы можем удалить из очереди в нужном положении? или мы можем удалить только из *** popleft() ***? – Madhi