【小ネタ】Queue と LifoQueue のデータ型
Python には Queue と LifoQueue というモジュールがある.これらのデータ型に関する小ネタを紹介する.
まずは Queue の使い方について説明する.
from queue import Queue
arr = [1, 2, 3]
q = Queue()
for num in arr:
q.put(num)
print(q)
以上のように Queue モジュールを使うと Queue というデータ構造に要素を入れることができる.
これを print すると以下のような結果になる.
<queue.Queue object at 0x7ff7d3d08dd0>
これでは Queue に入っている要素がわからない.そこでコードを以下のように書き換えることで
print(q.queue)
以下のように要素を出力することができる.
deque([1, 2, 3])
同様に LifoQueue も使うと
from queue import LifoQueue
arr = [1, 2, 3]
lq = LifoQueue()
for num in arr:
lq.put(num)
print(lq)
以下のように出力される.
<queue.LifoQueue object at 0x7fb4ed40e090>
そこで以下のように書き換えると
print(lq.queue)
以下のように出力される.
[1, 2, 3]
ここで気づいた人もいるかもしれないが q.queue は deque 型,lq.queue は list 型なのである.
以上小ネタでした.
この設計にした理由やデータ構造との関係など知っている方がいらっしゃったら教えてください.
Author And Source
この問題について(【小ネタ】Queue と LifoQueue のデータ型), 我々は、より多くの情報をここで見つけました https://zenn.dev/tkkawa/articles/d3ef69423c44f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol