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

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

スライスとは?

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

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

前からスライスする方法

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

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

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

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

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

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

スライスの覚え方

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

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

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

文字列のスライスと同じ方法ですね。

関連記事

Pythonの文字列をスライスする方法とそのときに指定するインデックスの覚え方も紹介します。リストやタプルのスライスとほぼ同じ要領でスライスできます。 今回は文字列のオブジェクトの性質も合わせて解説しています。参考になれば幸いです。[…]

Pythonの文字列をスライスする方法【インデックスを理解しよう】

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

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

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

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

まとめ

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

関連記事

プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]

【独学】Pythonを学習できる無料&有料教材7選