列表切片是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