在python中迭代deque

在python中迭代deque,python,Python,因为deque是一个双链接列表,所以我应该能够按顺序遍历它,与列表相比没有任何性能开销。但是,下面的操作将比遍历列表慢得多 for i in range(0, len(d)): doSomethingWith(d[i]) 因为每次它都从d[0]开始转到d[i]。如何使其正确地进行迭代?您可以直接在deque上进行迭代 for i in d: doSomethingWith(i) (参见文档中的示例:)我使用了while循环进行deque迭代,如下所示: from collec

因为deque是一个双链接列表,所以我应该能够按顺序遍历它,与列表相比没有任何性能开销。但是,下面的操作将比遍历列表慢得多

for i in range(0, len(d)):
    doSomethingWith(d[i])

因为每次它都从
d[0]
开始转到
d[i]
。如何使其正确地进行迭代?

您可以直接在deque上进行迭代

for i in d:
    doSomethingWith(i)

(参见文档中的示例:)

我使用了
while
循环进行
deque
迭代,如下所示:

from collections import deque

lst = [1,2,4,8]
queue=deque(lst)

print(queue)

while queue:
    print('{}{}'.format("head: ",queue[0]))
    queue.popleft()
输出:

deque([1, 2, 4, 8])
head: 1
head: 2
head: 4
head: 8

提供了自己的迭代器,请使用它。这个答案在您想要删除我的迭代队列时非常有用。