Pythonで配列を逆順にする方法は複数あります。本記事では、利用頻度の高い3つの方法の説明と、それらの使い分けについて解説します。
配列を逆順にする方法
スライス[::-1]
スライス構文を使うと簡単に逆順のリストを作れます。新しいリストを返すため、元のリストは変更されません。
arr = [1,2,3,4,5]
reversed_arr = arr[::-1]
print(reversed_arr) # [5,4,3,2,1]
print(arr) # [1,2,3,4,5] (元のリストはそのまま)
reversed()
reversed()関数はイテレータを返すため、list()でリスト化して利用します。スライス同様、元のリストは変更されません。
arr = [1,2,3,4,5]
iterator = reversed(arr)
reversed_arr = list(iterator)
print(iterator) # <list_reverseiterator object at 0xxxxxxxxx>
print(reversed_arr) # [5,4,3,2,1]
print(arr) # [1,2,3,4,5]
reverse()
reverse()メソッドは元のリストを直接反転します。新しいリストは返されず、元のリストは失われる破壊的変更である点に注意が必要です。
arr = [1,2,3,4,5]
arr.reverse()
print(arr) # [5,4,3,2,1](元のリストが反転している)
使い分け
- 元のリストを変更せずに逆順の結果だけが欲しいなら、スライス[::-1]やreversed()を使う
- 元のリストを直接反転したいならreverse()を使う
まとめ
Pythonで配列を逆順にする主な方法は、スライス[::-1]、reversed()、reverse()の3つです。元のリストを変更したいかどうかなど、用途に応じて使い分けましょう。