以前对python中切片操作一知半解,能完成基本的切片操作,但是遇到切片中有负数或者步长为负数情况,就比较糊涂,今天特意总结下
# 切片操作传入一个参数:
a = [0,1,2,3,4,5,6,7,8,9]
print a[2] # 从左向右,位置为第二个
print a[-1] # 从右向左,位置为第一个
# 切片取完整的列表信息
print a[:] # 获取全列表信息
print a[::] # 获取全列表信息
print a[::-1] # 将列表翻转
# 传入两个参数,a[start_inde:end_index:step]
这个需要对每个参数进行解释:
start_index是从这个参数开始寻找,end_index是结束,step是步长
如图所示,切片会取前四个参数,步长长为2,最后一个是end_index-1参数
这里注意,步长是2,是正数,表示从左向右取数,因为步长是2,所以取到的是0,2,
如果步长为1,就是0,1,2,3
当步长传入为负数时,从右向左取数,可以查看下面两种情况
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
因为切片取数方向问题,所以,a[0:4:-2],从右向左,步长为2,所以输出为空,
a[4:0:-2],从第四个是第一个数,所以输出4,2
此处记住切片的步长是取数方向,start_index是正数从左侧开始,如果为负数,最末位起始位置是-1,end_index同样的道理,这样就不会出错了
深度解析切片:
切片操作调用python是方法:__getitem__()
大家有兴趣可以看看help(a.__getitem__(4))的解析