目次
はじめに
Pythonの標準ライブラリには、効率的なデータ操作を可能にする多くの便利な機能があります。その中でもcollectionsモジュールに含まれるdeque(デック)は、リストに似た構造を持ちながら高速な要素追加や削除が可能なデータ型です。本記事では、deque.extend関数の基本的な使い方から応用例までを初心者向けにわかりやすく解説します。
deque.extend関数とは?
deque.extend関数は、既存のdequeオブジェクトの末尾に複数の要素を追加するためのメソッドです。Pythonのリストのextendメソッドと同様の動作をしますが、dequeを使うことで高速な操作が可能になります。
deque.extend関数の基本構文
from collections import deque
# dequeの作成
d = deque([1, 2, 3])
# 新しい要素の追加
d.extend([4, 5, 6])
print(d) # 出力: deque([1, 2, 3, 4, 5, 6])
構文説明:
- deque.extend(iterable) : iterable(リストやタプルなどの反復可能オブジェクト)をdequeの末尾に順番に追加します。
deque.extend関数の使用例
1. リストの要素をdequeに追加
from collections import deque
d = deque([10, 20])
new_elements = [30, 40, 50]
d.extend(new_elements)
print(d) # 出力: deque([10, 20, 30, 40, 50])
この例では、リストの要素をそのままdequeの末尾に追加しています。
2. 文字列をdequeに追加
from collections import deque
d = deque(['a', 'b'])
d.extend('cde')
print(d) # 出力: deque(['a', 'b', 'c', 'd', 'e'])
文字列を追加する場合、1文字ずつ要素として追加されます。
deque.extend関数の応用例
1. スタック操作との併用
from collections import deque
stack = deque([1, 2, 3])
stack.extend([4, 5])
while stack:
print(stack.pop()) # 出力: 5, 4, 3, 2, 1
dequeを使うと、LIFO(後入れ先出し)スタック操作が簡単に実装できます。
2. キュー操作との併用
from collections import deque
queue = deque([1, 2, 3])
queue.extend([4, 5])
while queue:
print(queue.popleft()) # 出力: 1, 2, 3, 4, 5
popleft()メソッドを使うことでFIFO(先入れ先出し)キュー操作ができます。
まとめ
deque.extend関数は、効率的に複数の要素を追加できる便利なメソッドです。リストに似た機能を持ちながら、パフォーマンス面で優れるため、大量のデータを扱う場合に特に有用です。基本的な使い方から応用例までを押さえておくことで、Pythonでのデータ操作の幅が広がります。