【Python】リストのスライスについて解説!

こんにちは!

リストのスライスをうまく利用できていますか?

今回の記事では、以下のスライスの方法を紹介します。

  • 通常のスライス
  • 要素を等間隔でスライス

通常のスライス

スライスとは、リストから一部分を取り出して、別のリストを作成することです。

スライスする範囲は[]で指定します。

リスト[開始位置:終了位置]

以下のプログラムは、様々なスライスを行うプログラムです。

list = [1, 2, 3, 4, 5, 6, 7]

print(list[:])  #全て
print(list[2:]) #インデックス番号2~
print(list[:5]) #~インデックス番号5
print(list[2:5])#インデックス番号2~5

実行結果

[1, 2, 3, 4, 5, 6, 7]
[3, 4, 5, 6, 7]
[1, 2, 3, 4, 5]
[3, 4, 5]
インデックス番号は 0 から始まります。リストの先頭の要素が 0 です。

以下の図を参考に、インデックス番号を確認しましょう。

また、上図のように、インデックス番号をマイナスで指定することも可能です。

以下のプログラムは、インデックス番号にマイナスを指定して様々なスライスを行うプログラムです。

list = [1, 2, 3, 4, 5, 6, 7]

print(list[-1:])  #最後の要素のみ
print(list[:-5])  #最初からインデックス番号-5(1)まで
print(list[-5:-2])#インデックス番号-5(1)から-2(5)まで

実行結果

[7]
[1, 2]
[3, 4, 5]

要素を等間隔でスライス

スライスする際に、ステップを指定して、等間隔でスライスをすることができます。

リスト[開始位置:終了位置:ステップ]

以下のプログラムは、ステップを指定して様々なスライスを行うプログラムです。

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(list[::2])
print(list[1::2])

実行結果

[1, 3, 5, 7, 9]
[2, 4, 6, 8, 10]

またステップでも、インデックス番号と同様に、マイナスを指定することが可能です。

以下のプログラムは、ステップにマイナスを指定して様々なスライスを行うプログラムです。

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(list[::-1])  #逆順
print(list[::-2])  #逆順で1個飛ばし
print(list[-2::-2])#最後から2番目の要素から1個飛ばし

実行結果

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
[10, 8, 6, 4, 2]
[9, 7, 5, 3, 1]

まとめ

今回の記事では、リストのスライス方法として以下の2つを紹介しました。

  • 通常のスライス
     →スライスする範囲を[]で指定
      インデックス番号に注意
  • 要素を等間隔でスライス
     →ステップにもマイナスを使用可能

スライスはとてもよく使用されるため、しっかりと理解しておきましょう!