最近エンキューされたアイテムがキューにあることを知りたいです。どうすればこれを見つけることができますか?
つまり、キューがデキューする最後のアイテム (または最後にキューに入れられたアイテム) を見つける方法
最近エンキューされたアイテムがキューにあることを知りたいです。どうすればこれを見つけることができますか?
つまり、キューがデキューする最後のアイテム (または最後にキューに入れられたアイテム) を見つける方法
ここで何を達成しようとしているのか完全にはわかりませんが、次の方法でうまくいく可能性があります。キューが空でないことを確認してください。
>>> 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
オブジェクトを使用していると仮定しています.スレッドセーフなのでお勧めします:)
キューをどのように実装していますか? リストとして実装されている場合、おそらく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を参照してください。