Pythonリストスライスの規則
Pythonのリストスライス構文はlist[start:end:step]です。startはスライスの開始位置、endはスライスの終了位置、ステップはスライスのステップを表します。スライス規則は以下のとおりです。
- start と end を省略すると、リストの先頭から末尾まで、つまりリスト全体を表す。
- 省略時は0で、リストの先頭からスライスを開始する
- endを省略した場合はリストの長さとなり、リストの末尾までスライスされます。
- startとendの両方に負の値を指定すると、リストの後ろから数えてスライスすることができます。例えば、list[-1]は最後の要素を表し、list[-2:]は最後の2つの要素を表します。
- stepを省略した場合、デフォルトは1となり、毎回1要素ずつスライスすることを意味する
- stepが正の数を表す場合、左から右方向へのスライス、stepが負の数を表す場合、右から左方向へのスライス。
- スライスはスタート位置の要素を含み、エンド位置の要素は含まれません。
以下にスライスしたものの例をいくつか挙げます:
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 获取第二个到第四个元素(索引为1到3)
slice1 = list[1:4] # [2, 3, 4]
# 获取前五个元素
slice2 = list[:5] # [1, 2, 3, 4, 5]
# 获取最后三个元素
slice3 = list[-3:] # [8, 9, 10]
# 获取倒数第二个到倒数第五个元素
slice4 = list[-2:-6:-1] # [9, 8, 7, 6]
# 获取所有偶数位置的元素
slice5 = list[1::2] # [2, 4, 6, 8, 10]
注意、スライス操作は元々のリストを変更するのではなく、新しいスライス結果を返します。