Pythonのリスト・タプルをスライスする方法とインデックスの覚え方

Pythonでリストやタプルをスライスするときの書き方を紹介してます。スライスとは何かやインデックスの覚え方も解説しています。

スライスとは?

リストのスライスとはリストを指定したインデックスで区切ることです。文字列に対して行うスライスと同じです。

  • シーケンスなオブジェクトはスライスできる
  • シーケンスとは要素に整数のインデックスが割り振られているもの
    • リスト、タプル、文字列などはシーケンスなのでスライス可能
    • 辞書はマッピングなので付加

前からスライスする方法

  • 「リスト[スタート:ストップ]」
  • コロン(:)を使って書く
  • スタートとストップのインデックスを指定する。
    • 片方だけでもOK
    • スタートのインデックスの要素は含まれる
    • ストップのインデックスの要素は含まれない
    • インデックスを超えると自動で調節する

スタートのみ指定すると最後までの要素が取り出され、ストップのみ指定すると最初からの要素が取り出されます。

最後の例のように、スタートとストップにインデックスを超える値を指定すると自動で調節してくれます。

タプルのスライスも同じ書き方でできます。

後ろからスライスする方法

書き方は先ほどと同じで、スタートとストップに負のインデックスを渡すだけで逆からスライスできます

スライスの覚え方

リストをスライスするときのインデックス

指定したインデックスどこで区切られるかは上の図を参考にしてください。

正のインデックスを指定したら、その要素の前で区切られます。負のインデックスならその要素の後ろで区切られています。

スライスでコピーする方法

  • スタートとストップを指定しないとコピーできる
  • 浅いコピーを作る

コピーを「humm」に代入しています。このhummに要素を追加すると、hummだけが変更され元のspamは変更されていません。

これを浅いコピーと言います。リストのコピーはメソッドを使って行うこともできます。

まとめ

  • スライスでリストを区切れる
  • 「リスト[スタート:ストップ]」と書く
  • スライスでコピーできる
    • 浅いコピーを返す

当ブログではPython初心者が独学で習得するためのカリキュラムを公開中!

初心者がPythonを独学で習得できたロードマップはコチラ

Pythonのリスト・タプルをスライスする方法とインデックスの覚え方
最新情報をチェックしよう!