我正在使用Python(实际上是pypy3)练习编程竞赛。在一个问题中,我需要使用队列——我只需要将元素放在一端并从另一端取出。根据文档,似乎有两个选项:
从文档中可以看出,这两种容器都是线程安全的(至少对于一些deque操作),而我永远不会使用多个线程。Python中是否有简单的非同步队列?
queue.Queue
和queue.deque
。我首先尝试使用queue.Queue
解决问题,但我的解决方案超过了时间限制。然后我切换到queue.deque
,并通过了问题(虽然接近极限)。从文档中可以看出,这两种容器都是线程安全的(至少对于一些deque操作),而我永远不会使用多个线程。Python中是否有简单的非同步队列?
collections.deque
吗? - PM 2RingDeques支持线程安全、内存高效的从deque的任一侧进行附加和弹出,两个方向的O(1)性能大致相同。
- Ivaylo Strandjevqueue.Queue
(在Python 2中又称为Queue.Queue
)在内部使用了一个collections.deque
;如果您不需要queue.Queue
的特殊功能,则应该使用一个普通的collections.deque
。 - PM 2Ring