切片的操作对象有:list, tuple,字符串也是一种list,就是为了方便描述,后续的对象用object
具体操作:
顺数切片的索引是从0开始
倒数切片的索引是从-1开始
格式object[X:Y:step]
X(第一个冒号之前)表示切片开始的位置
Y(两个冒号之间)表示切片到哪里结束,不包含Y
step:表示切片间隔数,当step为正时,表示从左向右切片,当step为负时,表示从右向左切片,(非官方说法)
object[:]返回整个序列的拷贝。
object[3:]返回从索引3到最后的拷贝。
object[::3]返回索引0,3,6的序列切片。
例子如下:
object=['Macle','123',2,99,'one']
print(object[0:3])
['Macle', '123', 2]
print(object[:3])
['Macle', '123', 2]
print(object[-3])
2
print(object[-1])
One
print(object[::3])
['Macle', 99]
Print(object[3:])
[99, 'one']
根据例子,当step为正,对于object[X:Y:step]无论X,Y是正数还是负数(正负都可以eg..object[0:-3]),只要X,Y按照正负规则所对应的位置后,只要X在Y-1的前面,切片所得就不会为空。否则为空。
X Y-1 Y
当X和Y的值越界了之后,从上面那个数轴的角度去形象化理解就能理解结果了。
同理,当step为负,类推。