在python中迭代deque
因为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
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
提供了自己的迭代器,请使用它。这个答案在您想要删除我的迭代队列时非常有用。