「リストの順番を逆にしたい」「うしろから要素を処理したい」
Pythonでそんな処理をしたいとき、最も簡単なのがreverse()
メソッドです。
この記事では、list.reverse()
の使い方、他の逆順処理との違い、注意点などを、初心者向けに丁寧に説明します。
reverse()の基本的な使い方

書き方
リスト.reverse()
特徴
- リストの要素の順番を「その場で」逆にします
- 何も返しません(戻り値は
None
)
使用例
# 数字のリストを作成
nums = [1, 2, 3, 4, 5]
# 順番を逆にする
nums.reverse()
# 結果を確認
print(nums) # [5, 4, 3, 2, 1]
reverse()と他の方法との違い
3つの逆順処理方法を比較
方法 | 元のリストを変更? | 戻り値 | 書き方 |
---|---|---|---|
リスト.reverse() | 変更する | なし | nums.reverse() |
reversed(リスト) | 変更しない | イテレータ | list(reversed(nums)) |
リスト[::-1] | 変更しない | 新しいリスト | nums[::-1] |
例1:reversed()を使った方法
# 元のリストを残したまま逆順のリストを作る
nums = [1, 2, 3]
new_nums = list(reversed(nums))
print(new_nums) # [3, 2, 1]
print(nums) # [1, 2, 3](元のまま)
例2:スライスを使った方法
# スライスで逆順のリストを作る
nums = [10, 20, 30]
reversed_nums = nums[::-1]
print(reversed_nums) # [30, 20, 10]
print(nums) # [10, 20, 30](元のまま)
reverse()の実際の使い方

例1:点数を高い順に並べる
# テストの点数リスト
scores = [75, 92, 68, 85]
# まず小さい順に並べる
scores.sort()
print(scores) # [68, 75, 85, 92]
# 逆順にして高い順にする
scores.reverse()
print(scores) # [92, 85, 75, 68]
例2:やることリストを逆順で処理
# やることリスト
tasks = ["宿題", "買い物", "掃除"]
# 逆順にする
tasks.reverse()
# 一つずつ処理
for task in tasks:
print(f"次にやること:{task}")
# 次にやること:掃除
# 次にやること:買い物
# 次にやること:宿題
例3:数字を逆順で表示
# 1から5までの数字
numbers = [1, 2, 3, 4, 5]
# 逆順にしてカウントダウン風に
numbers.reverse()
for num in numbers:
print(f"{num}...")
# 5...
# 4...
# 3...
# 2...
# 1...
reverse()を使うときの注意点
注意点1:何も返さない
# よくあるまちがい
nums = [1, 2, 3]
result = nums.reverse() # これはダメ!
print(result) # None(何も入っていない)
print(nums) # [3, 2, 1](こちらが正しい結果)
正しい使い方:
nums = [1, 2, 3]
nums.reverse() # これが正しい
print(nums) # [3, 2, 1]
注意点2:文字列には使えない
# 文字列を逆順にしたい場合
text = "hello"
# text.reverse() # エラー!文字列にはreverseがない
# 正しい方法:スライスを使う
reversed_text = text[::-1]
print(reversed_text) # "olleh"
注意点3:辞書には使えない
# 辞書を作成
student = {"名前": "田中", "年齢": 15}
# student.reverse() # エラー!辞書にはreverseがない
# 辞書のキーを逆順にしたい場合
keys = list(student.keys())
keys.reverse()
print(keys) # ['年齢', '名前']
使い分けのコツ

いつreverse()を使う?
- 元のリストを変更してもよいとき
- 簡単に逆順にしたいとき
- メモリを節約したいとき
いつ他の方法を使う?
- 元のリストを残したいとき →
reversed()
やスライス - 一時的に逆順が欲しいとき → スライス
[::-1]
- 文字列を逆順にしたいとき → スライス
[::-1]
実際の比較例
# 元のリスト
original = [1, 2, 3, 4, 5]
# 方法1:reverse()(元のリストを変更)
list1 = original.copy() # コピーを作成
list1.reverse()
print(f"reverse():{list1}") # [5, 4, 3, 2, 1]
# 方法2:reversed()(元のリストを保持)
list2 = list(reversed(original))
print(f"reversed():{list2}") # [5, 4, 3, 2, 1]
# 方法3:スライス(元のリストを保持)
list3 = original[::-1]
print(f"スライス:{list3}") # [5, 4, 3, 2, 1]
print(f"元のリスト:{original}") # [1, 2, 3, 4, 5](変更されていない)
まとめ
list.reverse()
は、最も簡単にリストを逆順にする方法です。
元のリストをそのまま逆転したいときには迷わず使えるメソッドです。
この記事のポイント
reverse()
はリストをその場で逆順に並び替える- 戻り値はないので、結果は元のリストで確認
reversed()
やスライスとの違いを理解して使い分けよう- 文字列や辞書には使えないので注意
コメント