【问题标题】:Python Queue-Like ContainerPython 队列类容器
【发布时间】:2014-04-17 19:55:08
【问题描述】:

我想要一个容器在 python 2-7 中执行以下操作:

我需要该容器表现得像一个队列:先进先出,我将对象附加到它,然后“从另一端”以相同的顺序获取它们。

但是我还需要能够从队列的开头读取最多 5 个对象而不弹出它们,然后如果我不再需要它们,我会将它们从队列中弹出。

我是 python 新手,我想知道是否有任何容器可以这样做?或者有什么简单的实现?

【问题讨论】:

    标签: python python-2.7 queue


    【解决方案1】:

    我相当确定您想要来自collections 模块的deque。它包括(除其他外)append、pop、pop_left 和 rotate 方法,还支持索引。索引在中间变慢,但在末端很快。

    【讨论】:

    • 使用 deque 我将不得不先 popleft 然后 appendleft,是否有一个容器可以像列表一样通过索引访问,并且表现得像 deque?我正在寻找,如果可以的话,它会更快,不过谢谢
    • "并且还支持索引"。例如,my_deque[3] 是第 4 个元素。
    【解决方案2】:

    从标准库中查看这个模块。它应该为您提供您想要的一切。

    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 来做你想做的事。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多