【Python入門】リストの要素をスライス(分割)する方法を徹底解説!

Python

Pythonで扱うリスト(List型)は、データを複数格納できるとても便利な型です。
この記事では、Pythonのリストを任意の位置で分割する方法、いわゆる「スライス(スライシング)」の基本から応用まで、初心者向けに丁寧に解説していきます。

スポンサーリンク
スポンサーリンク

リストのスライスとは?

リストに対して「一部の要素を取り出す」操作のことをスライスと呼びます。
例えば、以下のようなリストがあったとします:

scores = [55, 70, 90, 80, 45]

この中から2番目から4番目の要素(70, 90, 80)だけを取り出したいとき、どうすればよいでしょうか?
そのときに活躍するのが「スライス構文」です。

スライス構文の基本形

#分割の基本的な型
変数名[Start:End:Step]
項目説明
Start取り出しを始める位置(0から始まる)
End取り出しを終える位置(この位置の要素は含まれない)
Step何個おきに取り出すか(省略可能・デフォルトは1)

ポイント:Endインデックスは「含まれない」という点に注意しましょう!

スライスの基本例

指定した範囲を取り出す

test = [55, 70, 90, 80, 45]
print(test[2:5]) 

結果

[90, 80, 45]

解説:インデックス2から4までの要素が取得されます。インデックス5の値は含まれません。

ステップを指定して取り出す

test = [55, 70, 90, 80, 45]
print(test[::2]) 

結果

[55, 90, 45]

解説:インデックス0からスタートして、2つおきの要素を取り出します。

先頭や末尾を省略したスライス

test = [55, 70, 90, 80, 45]
print(test[:2]) 
print(test[4:])  

結果

[55, 70]
[45]

解説:

  • [:2]は、先頭からインデックス2(含まない)までを取得
  • [4:]は、インデックス4以降(最後まで)を取得

マイナスインデックスを使った取り出し

Pythonのリストでは、マイナスのインデックスを使うと、末尾から数えることができます

test = [55, 70, 90, 80, 45]
print(test[-2:])

結果

[80, 45]

解説:-2は末尾から2番目を意味し、そこから最後までの要素が取得されます。

よくあるエラーと注意点

エラー・落とし穴解説例
インデックスが範囲外でもエラーにならないtest[3:10] → 要素が5個しかなくても [80, 45]と返ってくる
終了インデックスが含まれないtest[0:2]は、インデックス0と1の要素のみを取得(2は含まれない)
空のリストが返ってくることがあるtest[4:2]のように、開始が終了より後になると [] になる
ステップが0だとエラーtest[::0]ValueError: slice step cannot be zero になります

まとめ:スライスの活用ポイント

操作内容スライス記法結果
最初の2つを取得test[:2][55, 70]
最後の2つを取得test[-2:][80, 45]
全ての要素を逆順に取得test[::-1][45, 80, 90, 70, 55]
偶数番目の要素を取得test[::2][55, 90, 45]

関連記事

タイトルとURLをコピーしました