スライスとは、リスト、文字列、タプルなどのシーケンスオブジェクトを部分的に取り出す方法です。スライスは、シーケンスオブジェクトの一部を取り出し、新しいシーケンスオブジェクトを作成します。
スライスは、以下のような構文で表されます。
sequence[start:stop:step]
sequence
: スライスを取得したいシーケンスオブジェクト。start
: スライスの開始位置。省略すると、シーケンスオブジェクトの先頭からスライスを開始します。stop
: スライスの終了位置。省略すると、シーケンスオブジェクトの末尾までスライスを行います。step
: スライスのステップ数。省略すると、ステップ数は1になります。
スライスの例
以下の例では、文字列 'hello world' をスライスして、新しい文字列 'world' を作成します。
s = 'hello world' new_s = s[6:] # 'world'
以下の例では、リスト numbers
の先頭から3つの要素をスライスして、新しいリスト result
を作成します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = numbers[:3] # [1, 2, 3]
以下の例では、リスト numbers
のインデックスが偶数の要素をスライスして、新しいリスト result
を作成します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = numbers[::2] # [1, 3, 5, 7, 9]
負のインデックスを使用するスライス
スライスに負のインデックスを使用することもできます。負のインデックスは末尾からの相対位置を示します。例えば、-1
は末尾の要素を表します。
以下の例では、リスト numbers
の末尾から3つの要素をスライスして、新しいリスト result
を作成します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = numbers[-3:] # [8, 9, 10]
スライスでの代入
スライスを使用して、シーケンスオブジェクトの一部を置き換えることもできます。以下の例では、リスト numbers
の先頭から3つの要素を 1, 1, 1
に置き換えます。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] numbers[:3] = [1, 1, 1] # [1, 1, 1, 4, 5, 6, 7, 8, 9, 10]
スライスのステップ数
スライスのステップ数を変更することで、シーケンスオブジェクトの一部をスキップすることができます。以下の例では、リスト numbers
のインデックスが3以上かつ2で割り切れる要素をスライスして、新しいリスト result
を作成します。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = numbers[3::2] # [4, 6, 8, 10]
結論
スライスは、シーケンスオブジェクトの一部を取り出すための強力な方法です。スライスを使用することで、新しいシーケンスオブジェクトを作成したり、シーケンスオブジェクトの一部を置き換えたりすることができます。スライスを使用することで、コードをより簡潔に、そして読みやすくすることができます。