dequeの使い方
今回はpythonのdequeについて解説します。
deque(デック)とは
deque(デック)とは、
・両端に対する要素の追加や削除が高速に行えるデータ構造
です。
データ構造とは
データ構造とはpythonで使用されるデータの型のことで、例えばlistやdictもデータ構造の一種です。
特徴
dequeの特徴は
・キュー処理やスタック処理を高速に行う事ができること
です。
特に大量のデータを扱う際にはパフォーマンスの違いが顕著になることがあります。
※キュー処理とスタック処理
簡単に言うと[1,2,3,4,5]などのデータの先頭や末尾にデータを追加したり、データを消したりすること
要約:listより高速で両端のデータを追加したり消したりできるよ!
使用例 1~5
例になります。
1.作成
from collections import deque
# 空のdequeを作成
d = deque()
# 初期値を持つdequeを作成
d = deque([1, 2, 3])
2.追加
# 末尾に要素を追加
d.append(4) # [1, 2, 3, 4]
# 先頭に要素を追加
d.appendleft(0) # [0, 1, 2, 3, 4]
3.削除
# 末尾の要素を削除してその値を取得
last = d.pop() # last = 4, d = [0, 1, 2, 3]
# 先頭の要素を削除してその値を取得
first = d.popleft() # first = 0, d = [1, 2, 3]
4.拡張
# 末尾に複数の要素を追加
d.extend([4, 5, 6]) # [1, 2, 3, 4, 5, 6]
# 先頭に複数の要素を追加
d.extendleft([0, -1, -2]) # [-2, -1, 0, 1, 2, 3, 4, 5, 6]
5.長さの固定
# 長さ制限を設定(この例では5に設定)
d = deque([1, 2, 3, 4, 5], maxlen=5)
# 長さ制限を超える要素を追加すると、反対側の要素が自動で削除される
d.append(6) # d = [2, 3, 4, 5, 6]
これらはdequeの基本的な操作です。他にも多くの便利な機能があります。
補足:他のデータ構造との違い
pythonで使用されるデータ構造には、それぞれ特徴と向いている処理があります。
ここではlist,dict,dequeについて軽く紹介します。
・list
任意の長さの配列です。直感的に使いやすく、要素の追加、削除、スライス、インデックスでのアクセスなどができます。しかし、サイズの大きいリストでは、先頭に要素を追加や削除する操作は効率が悪くなります。
・dict
キーと値のペアを格納する辞書型のデータ構造です。キーを用いて高速に値を検索できます。Python 3.7以降では、要素の挿入順序が保持されるようになりました。
・deque
配列です。両端に対する要素の追加や削除が高速です。
pythonの標準データ構造ではないため、
from collections import deque
のようにインポートする必要があります。
データ型とデータ構造
データ構造はデータ型とは異なり、複数のデータをどのように整理・保存するかの「形状」を定義します。基本的には要素としてデータ型を用いて構築されます。
-データ型 int,float,str,boolなど
-データ構造 list, array, linked list, stack, queue, tree, graphなど
まとめ
今回はdequeについて簡単に解説しました。
最後まで読んでいただきありがとうございました!
Discussion