スライスの基本構文

Pythonのスライスは、リストや文字列の一部分を簡単に抽出するための非常に強力な方法です。スライス構文は次のように使用します。

a[start:stop:step]
  • start
    スライスを開始するインデックス(省略可能)
  • stop
    スライスを終了するインデックス(省略可能)
  • step
    要素を取得する間隔(省略可能)

基本例

a = [0, 1, 2, 3, 4, 5]
print(a[1:4])  # [1, 2, 3]

ここでは、インデックス1から3までの要素が取得されます(stopは含まれません)。

ステップを使用する例

stepを使うと、スライスで取得する間隔を指定できます。

a = [0, 1, 2, 3, 4, 5]
print(a[::2])  # [0, 2, 4]

逆順でのスライス

負のstepを使うと、リストを逆順に取得できます。

a = [0, 1, 2, 3, 4, 5]
print(a[::-1])  # [5, 4, 3, 2, 1, 0]

スライスの柔軟性

スライスのstartstopを省略すると、リストの最初から、または最後までを含めることができます。

print(a[:3])  # 最初の3要素を取得 [0, 1, 2]
print(a[3:])  # 3番目以降を取得 [3, 4, 5]

負のインデックス

負のインデックスを使うことで、リストの末尾から数えることが可能です。

print(a[-2:])  # 最後の2つの要素 [4, 5]

sliceオブジェクト

slice()関数を使ってスライスをプログラム的に生成することもできます。

s = slice(1, 4, 2)
print(a[s])  # [1, 3]

結論

Pythonのスライスは、リストや文字列などのシーケンス型データの一部分を簡単に操作するための非常に柔軟な機能です。基本的な操作から、負のインデックスやステップによる高度なスライス操作まで、幅広い用途で使用できます。