2016-07-26 13 views
1

リストにはすべてが表示されていますが、これは約events = queue.queue() です。これは抽出したいオブジェクトを持つキューですが、そのキューから最後のN個の要素を取得するにはどうすればいいですか?キューから最後のn個のアイテムを取得する

+0

**最初の** N要素​​を意味しますか? 'キュー'の最後から要素をポップすることはできません( 'deque'を使用していない限り)。 – DeepSpace

答えて

1

定義することはできません。あなたは何ができるか

がループまたはgetへの理解を使用している最初(あなたはqueueの端からgetすることはできません)Nの要素:

N = 2 
first_N_elements = [my_queue.get() for _ in range(N)] 
0

あなたがマルチであればスレッディング "そのキューの最後のN個の要素"は定義されておらず、質問は意味をなさない。

マルチスレッドがない場合は、他の要素(最後のNではなく)を気にするかどうかによって異なります。

あなたはそうではない場合:その後

for i in range(events.qsize() - N): 
    events.get() 

は、N項目

あなたが他の項目を捨てたくない場合は、あなただけにすべてを移動する必要がありますを取得異なるデータ構造(リストのようなもの)。キューの全体のポイントは、特定の順序で物事を取得することです。

関連する問題