【Python入門】Pythonのdeque.extendleft関数とは?使い方と活用方法を徹底解説(Python 3.11)

Python

はじめに

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を活用してみてください。