在python中迭代deque

时间:2015-06-27 21:38:01

标签: python

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

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

每次从d[i]开始前往d[0]。如何正确迭代?

2 个答案:

答案 0 :(得分:12)

您可以直接遍历deque。

for i in d:
    doSomethingWith(i)

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

答案 1 :(得分:0)

我使用while循环进行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