Slicing

字串,其實也是一種list,只是他是"immutable",不能做修改。但也因為他是list,所以支援了slicing。

What is Slicing

在index裡使用(:)來選取範圍的行為就是slicing。

a = [1,2,3,4]
a[1:3]
# [2,3]

Slicing的左邊數值(此範例中為1)代表起使index,右邊數值(此範例中為3)代表終止index,終止index是不會被走到的。如果沒有指定左值或右值,左值會默認是0,而右值會默認是list長度。在此要注意一點,python的index是支援負數的。所以如你不想取最後一個數字,可以寫成像a[:-1]

index      0   1   2   3   4   5   6   7   8   9
    [ 1,  2,  3,  4,  5,  6,  7,  8,  9,  10]
nindex  -10  -9  -8  -7  -6  -5  -4  -3  -2  -1

Advance Slicing

其實啊,slicing根本就是range啊,真正的slicing的形狀是這樣的a[1:3:1],最左邊的值就是我們上面說的左值,而中間的值則是上面的右值,最右邊的值則是step,也就是每步的大小,如果沒有指定,會根據你的左值跟中值,決定是1還是-1。

a = [1,2,3,4,5,6,7,8,9]
a[::2]
# [1,3,5,7,9]

results matching ""

    No results matching ""