有些书中叫做分片,有些书中叫做切片,翻译时的一些误差)
概念:将序列按段进行切割
作用:通过分片操作符来访问一定范围内的元素
实现:分片是通过两个冒号相隔的索引来实现
范围:符合序列特性即可使用切片功能,例如:列表、元组、字符串
语法:slice[(index_start):(index_end):(Step_length)]
#()括号中的参数为可选参数,默认步长值为1
切片的方式:
#定义字符串
slices="qwertyuioplkjhgfdsazxcvbnm"
#通过切片获取第一个元素
print slices[0:1]
结果:q
说明:
index_end不进行参与取值,也就是说只会计算取值0到1之间的数字,0为包含,1为不包含[0,1);
#增加步长
print slices[0:6:2]
结果:qet
说明:
Step_length步长值为2,也就是说中间会跳一个然后在去取值,步长为1值就是连续取值,切记步长为2不是跳过2个元素进行取值
#步长为负时
print slices[::-2]
结果:qet
说明:
负的步长以为从后向前取值
#index_start和index_end缺省时
print slices[:]
结果:qwertyuioplkjhgfdsazxcvbnm
说明:起始值和结束值为缺省时,获取所以元素,当index_start代表从第一个元素开始获取直到结束,当index_end缺省时,从定义的元素索引开始获取直到结束
示例:
print
slices[3:] ---->rtyuioplkjhgfdsazxcvbnm
print slices[:8]
---->qwertyui
#index_start和index_end为负数时
print slices[-5:-1]
结果:cvbn
说明:
当index_start和index_end为负数时,分片切割是从后往前取值
疑问?
最后一位元素怎么没有取到?
解释:
因为index_end的值为非包含,所以最后一个元素无法取值,如果要取值,需要将index_end变为空置.