リストの一部(スライス)を取得するには、コロン演算子[start : end]を使います。
startインデックスはスライスの範囲に含まれるのに対し、endインデックスはスライスの範囲に含まれないことに注意してください。また、マイナスのインデックスを使用することもできます。
次の図は、スライスがどのように機能するかを示しています。
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
foods[:3]のように、スライスの最初のインデックスを省略すると、自動的にリストの先頭から始まります。
同様に、2番目のインデックスを省略すると(foods[2:]のように)、リストの残りの部分が含まれるようになります。
ダブルコロンを使ったスライス演算子の構文は[start : stop : steps]となります。
start:スライスを開始する番号。
stop:スライスを停止する番号。
steps:リストをスライスする項目の間隔。
リストをコピーするには、元のリストの両方のインデックスを省略したスライスを使用できます(例えばfoods[:])。 また、list.copy()を使うこともできます。
これらを使うことで、基本的に元のリストをコピーできます。
スライスの中では、コロンは二項演算子の役割を果たし、どちらの側にも同じ数の空白を置かなければなりません(コロンを最も優先順位の低い演算子として扱います)。
拡張スライスでは、両方のコロンに同じ数の空白を置く必要があります。
例外:スライスのパラメータが省略された場合、スペースは省略されます。