1

最近エンキューされたアイテムがキューにあることを知りたいです。どうすればこれを見つけることができますか?

つまり、キューがデキューする最後のアイテム (または最後にキューに入れられたアイテム) を見つける方法

4

2 に答える 2

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オブジェクトを使用していると仮定しています.スレッドセーフなのでお勧めします:)

于 2012-10-10T01:25:37.543 に答える
0

キューをどのように実装していますか? リストとして実装されている場合、おそらくyourdata.pop(0)最初の項目を削除して返します。最近エンキューされたアイテムは、リストの最後にあり、yourdata.pop()削除して返すか、 yourdata[-1] でリストの内容を変更せずにアイテムを表示します。

ただし、キューにリストを使用することはパフォーマンスの低下を招くため、お勧めできません。ただし、最初のアイテムが削除されるたびに、リスト内の後続のすべてのアイテムを更新する必要があります。などの特殊なキューの実装により、パフォーマンスが向上しますcollections.deque。議論を参照: http://docs.python.org/tutorial/datastructures.html#using-lists-as-queues

Python での Queue と deque の詳細については、 Queue.Queue と collections.dequeを参照してください。

于 2012-10-10T01:20:29.357 に答える