リストの逆順 (reverse / reversed) | Python-izm

リストの逆順

Pythonにてリストの逆順を取得したい場合があります。指定のリスト自体を逆順に更新する方法と、リストの逆順結果のみを取得する方法があります。なおreversed関数は、リストに限らずシーケンス等の反復可能オブジェクトであれば結果を得ることができます。

リスト自体を逆順にする

reverseを使用するとリストオブジェクト自体の要素が逆順で更新されます。

python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append('sample')
python_list.append('list')
python_list.append('reversed')

print('---------------------------------')
print('【そのまま表示】')
for value in python_list:
    print(value)

python_list.reverse()

print('---------------------------------')
print('【逆順表示】')
for value in python_list:
    print(value)
---------------------------------
【そのまま表示】
python
izm
sample
list
reversed
---------------------------------
【逆順表示】
reversed
list
sample
izm
python

python_listそのものが更新されるため、元に戻したい場合は再度reverseを行う必要があります。内包している要素順を変更したくない際には次の方法を試してみましょう。

リストの逆順結果を取得する

結果のみを取得し、リスト自体を変更したくない場合のサンプルです。

python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append('sample')
python_list.append('list')
python_list.append('reversed')

print('---------------------------------')
print('【そのまま表示】')
for value in python_list:
    print(value)

print('---------------------------------')
print('【逆順表示】')
for value in reversed(python_list):
    print(value)

print('---------------------------------')
print('【リストの再表示】')
for value in python_list:
    print(value)
---------------------------------
【そのまま表示】
python
izm
sample
list
reversed
---------------------------------
【逆順表示】
reversed
list
sample
izm
python
---------------------------------
【リストの再表示】
python
izm
sample
list
reversed

reversedを使用します。最後の表示結果からpython_list自体の変更はされていないのが確認出来ると思います。

スライスで逆順に取得する

スライスで逆順に取得することもできます。元のリストには影響を与えません。

python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append('sample')
python_list.append('list')
python_list.append('reversed')

print('---------------------------------')
print('【そのまま表示】')
for value in python_list:
    print(value)

print('---------------------------------')
print('【逆順表示】')
for value in python_list[::-1]:
    print(value)

print('---------------------------------')
print('【リストの再表示】')
for value in python_list:
    print(value)
---------------------------------
【そのまま表示】
python
izm
sample
list
reversed
---------------------------------
【逆順表示】
reversed
list
sample
izm
python
---------------------------------
【リストの再表示】
python
izm
sample
list
reversed