2012-10-10 31 views

回答

1

我不是完全肯定你想什麼在這裏實現,但下面可能會奏效,只是檢查隊列不是空的。

>>> from Queue import Queue 
>>> q = Queue()  
>>> _ = [q.put(index) for index in xrange(2, 10)] 
>>> if not q.empty(): 
... q.queue[-1] 
9 
>>> 

林假設你正在使用Python的Queue對象,我會因爲它的線程安全的建議:)

0

你是如何實現你的隊列?如果它以列表的形式實現,那麼大概yourdata.pop(0)會刪除並返回第一個項目。最近入隊的項目將位於列表末尾,yourdata.pop()可以移除並返回,或者您的數據[-1]可以在不修改列表內容的情況下查看項目。

使用隊列列表是一個糟糕的主意,因爲您會產生性能損失,但是:每當第一個項目被移除時,列表中的所有後續項目都必須更新。您將從專門的隊列實現中獲得更好的性能,如collections.deque。見在討論: http://docs.python.org/tutorial/datastructures.html#using-lists-as-queues

對於VS在蟒蛇雙端隊列的隊列信息,請參見: Queue.Queue vs. collections.deque

相關問題