在python中迭代deque

Ell*_*sky 4 python

由于deque是一个双向链表,我应该能够按顺序遍历它,而不需要与列表相比具有任何性能成本.但是,以下内容比迭代列表慢得多

for i in range(0, len(d)):
    doSomethingWith(d[i])
Run Code Online (Sandbox Code Playgroud)

从每次d[i]开始到d[0].如何使其正确迭代?

Nig*_*een 13

你可以直接迭代双端队列.

for i in d:
    doSomethingWith(i)
Run Code Online (Sandbox Code Playgroud)

(参见文档中的示例:https://docs.python.org/2/library/collections.html#collections.deque)


Gra*_*non 9

我使用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()
Run Code Online (Sandbox Code Playgroud)

输出:

deque([1, 2, 4, 8])
head: 1
head: 2
head: 4
head: 8
Run Code Online (Sandbox Code Playgroud)