リストの逆順 (reverse / reversed)
Pythonにてリストの逆順を取得したい場合があります。指定のリスト自体を逆順に更新する方法と、リストの逆順結果のみを取得する方法があります。なおreversed関数は、リストに限らずシーケンスであれば結果を得ることができます。
「reverse」を使用するとリストオブジェクト自体の要素が逆順で更新されます。
# -*- coding: utf-8 -*-
python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append('sample')
python_list.append('list')
python_list.append('reversed')
print '---------------------------------'
print u'【そのまま表示】'
for value in python_list:
print value
python_list.reverse()
print '---------------------------------'
print u'【逆順表示】'
for value in python_list:
print value
--実行結果--
--------------------------------- 【そのまま表示】 python izm sample list reversed --------------------------------- 【逆順表示】 reversed list sample izm python
「python_list」そのものが更新されるため、元に戻したい場合は再度「reverse」を行う必要があります。 内包している要素順を変更したくない際には次の方法を試してみましょう。
結果のみを取得し、リスト自体を変更したくない場合のサンプルです。
# -*- coding: utf-8 -*-
python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append('sample')
python_list.append('list')
python_list.append('reversed')
print '---------------------------------'
print u'【そのまま表示】'
for value in python_list:
print value
print '---------------------------------'
print u'【逆順表示】'
for value in reversed(python_list):
print value
print '---------------------------------'
print u'【リストの再表示】'
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」自体の変更はされていないのが確認出来ると思います。
スライスで逆順に取得することもできます。元のリストには影響を与えません。
# -*- coding: utf-8 -*-
python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append('sample')
python_list.append('list')
python_list.append('reversed')
print '---------------------------------'
print u'【そのまま表示】'
for value in python_list:
print value
print '---------------------------------'
print u'【逆順表示】'
for value in python_list[::-1]:
print value
print '---------------------------------'
print u'【リストの再表示】'
for value in python_list:
print value
--実行結果--
--------------------------------- 【そのまま表示】 python izm sample list reversed --------------------------------- 【逆順表示】 reversed list sample izm python --------------------------------- 【リストの再表示】 python izm sample list reversed
インデックスと値を同時に取り出します!
