Python - 使用 popleft() 遍历双端队列

dan*_*v91 2 python loops deque

我一直在寻找迭代双端队列的最佳方法,同时使用 popleft 使用第一个元素并减少每次迭代的队列。我基本上想弹出双端队列中的第一个,使用此值运行一些代码,然后执行相同的过程,直到双端队列中没有更多值为止。

我在网上找到的最好的方法是使用 try 和 catch 块来捕获 IndexError:

try: 
    while mydeque: 
        value = mydeque.popleft()
except IndexError: 
# handle empty mydeque
Run Code Online (Sandbox Code Playgroud)

当然,抛出异常并不是做到这一点的最佳方式。我也会捕获 while 循环中发生的任何 IndexError ,这并不理想。使用 for 循环不起作用,因为我会在迭代期间修改双端队列。

做到这一点的最佳方法是什么?

sli*_*led 5

mydeque为空时,它False在 while 循环中解析。

while mydeque:
    value = mydeque.popleft()
Run Code Online (Sandbox Code Playgroud)

这将贯穿mydeque.