Python乾貨丨切片
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理
以下文章來源於騰訊雲,作者:使用者1788308。
切片
:在python原生list中的運用
通常一個切片操作要提供三個引數[start:stop:step]
start是切片的起始位置
stop是切片的結束位置(不包括)
step可以不提供,預設值是1,步長值不能為0,不然會報錯。
ValueError: slice step cannot be zero
list=[1,2,3,4,5,6,7,8,9]
當step為正數時,以list[start]元素位置開始, step做為步長到list[stop_]元素位置(不包括)為止,從左向右擷取。start和stop不論是正數還是負數索引還是混用都可以,但是要保證 list[stop]元素的【邏輯】位置,必須在list[start]元素的【邏輯】位置右邊,否則取不出元素。
print(list[0:4])
[0, 1, 2, 3]
print(list[1:-1])
[1, 2, 3, 4, 5, 6, 7, 8]
print(list[-8:8])
[2, 3, 4, 5, 6, 7]
當 step 是負數時,以list[start]元素位置開始, step做為步長到list[stop]元素位置(不包括)為止,從右向左擷取,要保證 list[stop]元素的【邏輯】位置
必須在list[start]元素的【邏輯】位置左邊,否則取不出元素。
print(list[5:2:-1])
[5, 4, 3]
print(list[7:-7:-1])
[7, 6, 5, 4]
start和stop在符合虛擬的邏輯位置關係時,start和stop的絕對值是可以大於length的。
print(list[-12:5:2])
[0, 2, 4]
start和stop都是可以省略的,例如 list[:],被省略的預設由其對應左右邊界起始元素開始擷取。
print(list[:])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
常用的切片操作
在某個位置插入元素
list[3:3] = "a" print(list)
[0, 1, 2, ‘a’, 3, 4, 5, 6, 7, 8, 9]
list[5:5] = ["a","b"] print(list)
[0, 1, 2, 3, 4, ‘a’, ‘b’, 5, 6, 7, 8, 9]