【发布时间】:2014-04-17 19:55:08
【问题描述】:
我想要一个容器在 python 2-7 中执行以下操作:
我需要该容器表现得像一个队列:先进先出,我将对象附加到它,然后“从另一端”以相同的顺序获取它们。
但是我还需要能够从队列的开头读取最多 5 个对象而不弹出它们,然后如果我不再需要它们,我会将它们从队列中弹出。
我是 python 新手,我想知道是否有任何容器可以这样做?或者有什么简单的实现?
【问题讨论】:
标签: python python-2.7 queue
我想要一个容器在 python 2-7 中执行以下操作:
我需要该容器表现得像一个队列:先进先出,我将对象附加到它,然后“从另一端”以相同的顺序获取它们。
但是我还需要能够从队列的开头读取最多 5 个对象而不弹出它们,然后如果我不再需要它们,我会将它们从队列中弹出。
我是 python 新手,我想知道是否有任何容器可以这样做?或者有什么简单的实现?
【问题讨论】:
标签: python python-2.7 queue
我相当确定您想要来自collections 模块的deque。它包括(除其他外)append、pop、pop_left 和 rotate 方法,还支持索引。索引在中间变慢,但在末端很快。
【讨论】:
从标准库中查看这个模块。它应该为您提供您想要的一切。
http://my.safaribooksonline.com/book/programming/python/9780132778633/data-structures/ch02lev1sec5
import Queue
q = Queue.Queue()
for i in range(5):
q.put(i)
while not q.empty():
print q.get(),
print
【讨论】:
collections.deque 来做你想做的事。