\

Pythonにはキューを実現する方法が3種類あります。

  1. list: append()pop(0)を利用します。ただし、Pythonのlistは内部的にはCの配列で実装されているため、この方法は遅いです。
def test_queue_list():
    q = []
    q.append(1)
    q.append(2)
    q.append(3)
    v = q.pop(0)
    assert v == 1
  1. collections.deque: append()popleft()でキューを実現します。両端が終端のため、キューとしてもスタックとしても使えて便利、高速です。
from collections import deque

def test_queue_deque():
    q = deque()
    q.append(1)
    q.append(2)
    q.append(3)
    v = q.popleft()
    assert v == 1
  1. queue.Queue: 同期キュークラスで、スレッドセーフな実装です。put()get()を利用します。
import queue

def test_queue_Queue():
    q = queue.Queue()
    q.put(1)
    q.put(2)
    q.put(3)
    v = q.get()
    assert v == 1

これらの方法を理解し、適切な状況で適切な方法を選択することが重要です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です