1.什么是切片
字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。
切片操作符在python中的原型是:
[start:stop:step]
即:
[开始索引:结束索引:步长值]
开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1.
结束索引:切片操作符将取到该索引为止,不包含该索引的值。
步长值: 默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0
li = [1,2,3,4,5,6,7]
print li[2] #输出3,因为索引为2的值为3
print li[2:4] #输出[3,4],从索引2开始取,到索引为4的5为止(不包含5)
print li[-1] #输出7,反向取第一个
print li[-1,-5,2] #输出[],从反向第1个向反向第5个取,但步长为2,表示正向相隔二个取值。
print li[-1,-5,-2] #输出[7,5],不用解释啦.
有时候我们可以省略开始索引,结束索引,如:
li = [1,2,3,4,5,6,7]
print li[1:] #输出[2,3,4,5,6,7],省略终止索引,表示取起始索引之后的所有值,等效于li[1:len(li)]
print li[:3] #输出[1,2,3],省略起始索引,表示从0开始取,等效于li[0:3]
print li[:] #输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,等效于li[0:len(li):1]
print li[::] #输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,等效于li[0:len(li):1]
print li[::-1] #输出[7,6,5,4,3,2,1],省略起始索引、终止索引,步长值为-1,表示反向获取