【发布时间】:2014-11-29 00:43:51
【问题描述】:
在我将一些dict 存储在Queue.Queue 中的程序中,我必须列出每个条目而不将它们从队列中删除。现在我使用这段代码 sn-p 来遍历条目:
elements = Queue.Queue()
# populate the queue
for elem in list(elements.queue):
# print elem
在Lib/Queue.py 和Lib/collections.py 的代码中,我发现queue 是deque 的代理,并且在“Python:Queue.Queue vs. collections.deque”的answer 中没有提到直接使用deque。
有什么特别的理由不使用deque?希望有人能详细说明一下。
【问题讨论】:
-
我认为您误解了答案。使用
collections.deque没有任何问题,只是在使用Queue对象时不想使用Queue.deque。那是Queue对象的内部双端队列,你不应该直接操作它。 -
在您链接到的问题中的解释相当清楚......如果您只需要一个数据结构,那么一个双端队列就可以了。