列表切片是python語言獨有的特征,大大方便了我們的編碼。
首先,在介紹切片之前,必須要知道一個知識,就是python列表的讀寫,下標可以使用負數。
insert,get,set 操作均可傳入負數下標
當傳入的下標是負數時,python會自動的加上一個length,但只會加一次,也就是說如果這個負數超過了 - length ,那么就會報錯了
list 的負數下標
1 a = [1, 2, 3, 4, 5] 2 # index = -1 + 5 = 4 3 # a[-1] == a[4] 4 print(a[-1]) # 5
當負數下標超過length
1 a = [1, 2, 3, 4, 5] 2 # index = -6 + 5 = -1 3 print(a[-6]) # IndexError: list index out of range
接下來是切片
list 的下標可以接收三個參數,分別是 beg (起始下標), end (結束下標) , step(步長)more,用冒號分隔
當 step > 0 : beg 默認值是0, end 默認值是 最末之后
當 step < 0 : beg 默認值是length-1, end默認值是 開頭之前
當 step = 0: 報錯
step 默認值是1
1 a = [1, 2, 3, 4, 5] 2 # step 默認值 1 ,當 step > 0, beg 默認值 0 ,end 默認值 最末之后 3 print(a[:]) # [1, 2, 3, 4, 5] 4 print(a[::]) # [1, 2, 3, 4, 5] 5 print(a[0:5:1]) # [1, 2, 3, 4, 5] 6 print(a[0:1000:1]) # [1, 2, 3, 4, 5] 7 8 # 當 step < 0, beg 默認值 length-1 ,end 默認值 開頭之前 9 print(a[::-1]) # [5, 4, 3, 2, 1] 10 print(a[len(a) - 1:-100:-1]) # [5, 4, 3, 2, 1]
切片產生的是列表的一個副本:
1 a = [1, 2, 3, 4, 5] 2 b = a[1:] 3 print(a) # [1, 2, 3, 4, 5] 4 print(b) # [2, 3, 4, 5]
切片的寫操作:
1 a = [1, 2, 3, 4, 5] 2 a[1:] = ['a'] 3 print(a) # [1, 'a']
end