Python リストの逆順
Pythonのリストを逆に出力するのって・・・ あれどうやるんだっけ?
そんなビギナーな私は
- 「Python リスト 逆」
- 「Python リスト 反転」
などを毎回検索してしまう。
ここの記事にたどり着いたということは皆さんも同じなのだろう・・・
※そうでない人にはすみません
そこで一応方法を書いておきます
※python3で書いています
## reversedメソッドの使用
l = [0, 1, 2, 3, 4]
for i in (reversed(l)):
print(i)
## スライスで逆順にする
l = [0, 1, 2, 3, 4]
for i in l[::-1]:
print(i)
その他
他にもないかと、stackoverflow を確認していたら、こんなのが書かれていた。
l = [0, 1, 2, 3, 4]
for i in range(len(l) // 2):
l[i],l[-1-i] = l[-1-i],l[i]
アルゴリズムセンスがない私には、見た瞬間さっぱり分からなかったがみなさんはもうお分かりだろう。
私は風呂に入った時に分かったのだが・・・・・
このままのソースだと分かりにくいので、以下のように修正してみた。
【修正したコード】
l = [0, 1, 2, 3, 4]
for i in range(len(l) // 2):
print("Before,i:{0},l[i]:{1},l[-1-i]:{2}".format(i, l[i], l[-1-i]))
l[i],l[-1-i] = l[-1-i],l[i]
print("After,i:{0},l[i]:{1},l[-1-i]:{2}".format(i, l[i], l[-1 - i]))
print("\r")
print(l)
【結果】
Before,i:0,l[i]:0,l[-1-i]:4
After,i:0,l[i]:4,l[-1-i]:0
Before,i:1,l[i]:1,l[-1-i]:3
After,i:1,l[i]:3,l[-1-i]:1
[4, 3, 2, 1, 0]
こんな遊び心のある回答、いつかはしてみたいなと。
大切ですね。