Pythonプログラミング リストの逆順

 見に来て下さって、ありがとうございます。石川さんです。

 今日は、ちょっと簡単に、リストを逆順にする方法です。

やり方

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()は、逆順のリストのコピーを戻しています。

まとめ

 ポイントはリスト自身が逆順になってしまうのか、逆順のリストのコピーを戻すのか、という点ですね。スライスのやり方については、記憶してしまいましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。