🪸

dequeの使い方

2023/09/02に公開

今回は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