目次
はじめに
Pythonのコレクションモジュールで提供されているdeque(デック)は、リストのように使える便利なデータ構造です。特に高速な両端キューの操作が可能なため、パフォーマンスが求められる場面で重宝されます。本記事では、deque.extendleft関数に焦点を当て、その使い方や応用例について詳しく解説します。
deque.extendleft関数とは?
deque.extendleft関数は、イテラブルな要素をデックの左側(先頭側)に順番に追加するための関数です。通常のextend関数が右側(末尾側)に要素を追加するのに対し、extendleftは逆の動作をします。
deque.extendleft関数の基本構文
from collections import deque
# deque.extendleftの基本構文
deque_object = deque()
deque_object.extendleft(iterable)
引数:
- iterable: リストやタプルなどのイテラブルなデータ。
ポイント:
- 要素はイテラブルの順番に左側に追加されますが、結果的に順番が逆転されます。
deque.extendleft関数の使用例
以下は基本的な使用例です。
from collections import deque
# 初期のdequeオブジェクト
dq = deque([1, 2, 3])
print("Before extendleft:", dq)
# リストを左側に追加
dq.extendleft([4, 5])
print("After extendleft:", dq)
実行結果:
Before extendleft: deque([1, 2, 3])
After extendleft: deque([5, 4, 1, 2, 3])
deque.extendleft関数の応用例
文字列の逆順追加
from collections import deque
dq = deque("abc")
dq.extendleft("def")
print(dq)
実行結果:
deq(['f', 'e', 'd', 'a', 'b', 'c'])
キューの逆順処理
from collections import deque
tasks = deque(["task1", "task2"])
tasks.extendleft(["task3", "task4"])
print(tasks)
実行結果:
deq(['task4', 'task3', 'task1', 'task2'])
まとめ
deque.extendleft関数は、データを左側から順番に追加する便利な関数です。データの順番を逆転させる用途や逆順処理のキューに適しています。Pythonで効率的なデータ操作を行いたい場合は、ぜひdequeを活用してみてください。