見に来て下さって、ありがとうございます。石川さんです。
今日は、ちょっと簡単に、リストを逆順にする方法です。
やり方
In [1]: l = list(range(10)) In [2]: l Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [3]: l[-1::-1] Out[3]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] In [4]: l[::-1] Out[4]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] In [5]: list(reversed(l)) Out[5]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] In [6]: l.reverse() In [7]: l Out[7]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
解説
1行目でリストを作成しています。3行目、4行目で内容を確認しています。0~9のリストが出力されています。6行目、7行目で逆順のリストを生成しています。9行目、10行目も、12行目、13行目も同様に逆順のリストを生成しています。
6行目、7行目の記述ですが、[start:stop:step]は、スライスといいます。start、stopを省略すると最初と最後を指定したことになります。例のようにstartに-1、stepに-1を指定することで逆順に取り出すことができます。9行目、10行目はstartを省略しています。
15行目のreverse()は、12行目のreversed()とは異なり、リスト(l)自身の内容が入れ替わります。スライスやreversed()は、逆順のリストのコピーを戻しています。
まとめ
ポイントはリスト自身が逆順になってしまうのか、逆順のリストのコピーを戻すのか、という点ですね。スライスのやり方については、記憶してしまいましょう。