目次
はじめに
Pythonのcollectionsモジュールに含まれるdeque(デック)は、両端キューと呼ばれるデータ構造で、リストよりも高速な要素の追加・削除を可能にします。本記事では、dequeオブジェクトに用意されている便利なメソッドの一つであるreverse()関数について、基本的な使い方から応用方法まで徹底解説します。
deque.reverse関数とは?
deque.reverse()関数は、dequeオブジェクト内の要素の順序を反転させるメソッドです。この関数を使うことで、リストと同様に効率的に要素の順番を入れ替えることができます。
特徴
- 元のdequeオブジェクトを直接変更する(破壊的メソッド)
- 戻り値はNone
- 時間計算量はO(n)
deque.reverse関数の基本構文
from collections import deque
# dequeオブジェクトを生成
d = deque([1, 2, 3, 4, 5])
# reverse関数の適用
d.reverse()
print(d) # 出力: deque([5, 4, 3, 2, 1])
deque.reverse関数の使用例
基本的な使用例
from collections import deque
# 数字のリストをdequeに変換
d = deque([10, 20, 30, 40])
# 順序を逆にする
d.reverse()
print(d) # 出力: deque([40, 30, 20, 10])
文字列を要素とする場合
from collections import deque
# 文字列のリストをdequeに変換
d = deque(['apple', 'banana', 'cherry'])
# 順序を逆にする
d.reverse()
print(d) # 出力: deque(['cherry', 'banana', 'apple'])
deque.reverse関数の応用例
キューの操作と逆順処理
from collections import deque
# タスクのキュー
tasks = deque(['task1', 'task2', 'task3'])
# タスクの順番を逆にして実行
tasks.reverse()
while tasks:
task = tasks.popleft()
print(f'Executing {task}')
出力:
Executing task3
Executing task2
Executing task1
数値データの逆順ソートと組み合わせる
from collections import deque
# 数値のリスト
data = [4, 2, 9, 1, 7]
# ソートしてdequeに変換
d = deque(sorted(data))
# 逆順に並び替え
d.reverse()
print(d) # 出力: deque([9, 7, 4, 2, 1])
まとめ
deque.reverse()関数は、dequeオブジェクトの要素を効率的に反転できる便利なメソッドです。基本的な使用方法から、キューの順序反転やソートと組み合わせた応用例まで紹介しました。Pythonで高速なデータ操作が必要な場面でぜひ活用してみてください。