Pythonでキューを使う
Pythonにおけるキューの使い方。
基本的な使い方
基本的なFIFOキューの使い方です。
出力結果
queue.empty()
メソッドはキューが空の場合にTrueを返し、それ以外の場合はFalseを返します。
queue.put()
メソッドはキューにアイテムを入れます。
queue.get()
メソッドはキューから先頭のアイテムを取り除き、それを返します。オプション指定なしの場合、アイテムが取り出せるようになるまでブロックします。
キューの個数を取得する
queue.qsize()
メソッドでキューのサイズを取得できます。
キューの上限を設定する
キュー生成時にキューの上限を設定できます。
注意点としては、キューが満杯になった場合は、キューに値を入れることができなくなります。
queue.full()
メソッドはキューが満杯の場合にTrue
を返し、それ以外の場合はFalse
を返します。
キューが満杯の場合、queue.put()
メソッドもブロックされるので、注意が必要です。
キューの上限を設定する(collections.dequeを使う)
キューの上限を超える場合に、アイテムの追加でブロックせずに古いアイテムを削除したい場合は、collections.deque
を使います。
出力結果
deque.popleft()
メソッドは先頭のアイテムを取り除き、それを返します。
LIFOで使う
deque.pop()
メソッドは末尾のアイテムを取り除き、それを返します。
出力結果
ただし、deque.popleft()
メソッド、deque.pop()
メソッドともにキューの内容が空の場合はエラーとなるため、注意が必要です。
出力結果