python 切片的理解(负切片)
2019-04-12 本文已影响0人
代码表演艺术家
切片(slice)是python很基础的东西了,虽然一直在使用这个功能,但是遇到切片含有负数的时候总是有点糊涂要查查手册来确认一下,今天就来看看怎么理解负切片
切片的格式是这样的:
X[start: end: step]
首先,这里的start和end 表示的是切片的开始位置和结束位置,step表示步长,
当步长step为负数时,因为要逆序取,所以start必须要比end 大才能取到值,不然返回空!!
a=[0,1,2,3,4,5,6]
x=a[1:4:-1]
>>[]
当然因为start和end也可能为负数,所以这里说的start比end大,不是指字面值,而是指具体的位置,
a=[0,1,2,3,4,5,6]
x=a[-2:2:-1] #这里-2的位置其实就是位置5,所以位置还是比2大
>>>[5, 4, 3]
y=a[-2:2:1] # step为正数时,这样就取不到了
>>[]
所以,step为负数时,start默认表示的是列表的结束位置,而end表示的是列表的开始位置!
step为正数时,情况相反
a=[0,1,2,3,4,5,6]
x=a[::-3]
>>>[6,3,0]
这个还是有点绕人的,需要多用多写才能理解和熟练使用~~