python中的切片非常方便,可以靈活的對list、tuple、string、range進行操作,得到想要的數據;
平時我們在訪問序列中的元素,通過索引可以正向訪問,也可以反向訪問,切片同樣也可以,下面舉例我常用的操作方法:
切片的語法為:
[start_index,end_index,step]
start_index:起始索引位置
end_index:結束索引位置
step:步長
切片的功能:從起始位置到結束位置的前一個位置,按步長來提取數據並生成新的對象,並且不會改變原數據類型;
舉例1,都寫全:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[2:6:1]
print(result)
結果:[5,6,2,6]
可以看出,按步長1,從索引2開始,到索引6-1結束的所有元素
備注:以上的這些操作也同樣適用於字符串或者元組中,對字符串進行反向顯示,使用切片可以非常方便的做到;
舉例2,省略步長:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[2:6]
print(result)
結果:[5,6,2,6]
可以看出,步長默認為1,可省略
舉例3,開始索引省略:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[:5]
print(result)
結果:[2,4,5,6,2]
可以看出,按步長1,從第一個元素開始,到索引5-1結束的所有元素
舉例4,結束索引省略:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[3:]
print(result)
結果:[6,2,6,0,4]
可以看出,按步長1,從索引3元素開始,到最后一個元素
舉例5,開始、結束索引都省略:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[:]
print(result)
結果:[2,4,5,6,2,6,0,4]
可以看出,相當於從第一個到最后一個元素,復制了一個新的序列
舉例6,步長非1但為正整數:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[2:6:2]
print(result)
結果:[5,2]
可以看出,按步長2,從索引2元素開始,到到索引6-1元素結束的所有元素
舉例7,步長為負整數:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[-2:-7:-3]
print(result)
結果:[0,6]
可以看出,按步長2,從索引-2元素開始,到到索引-7+1元素結束的所有元素
備注:切片時一定要保證步和的方向與開始、結束的方向一致,否則可能會得到一個空序列
舉例8,開始、結束省略,步長-1,可得到一個反向的序列:
L = [2,4,5,6,2,6,0,4] #長度8
result = L[::-1]
print(result)
結果:[4, 0, 6, 2, 6, 5, 4, 2]
可以看出,開始、結束索引都省略,可以得到一個反向的序列
