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

Python

はじめに

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で高速なデータ操作が必要な場面でぜひ活用してみてください。