1.1切片的相关概念
python中是用来切割可迭代对象(容器) 一个完成的切片是包含两个:三个参数的
object[start:end:step] start为起始位置,end为末位置,前闭后开,step为步长,如没有step时默认为1,step为正数时从左往右读取,为负数时从右往左读取(简单来说就是取列表中的值由一个到多个)。
当为object[start:]是从start切割到结束位置包括最后一位
1.2切割的各种类型
1.切割单个值,类似于列表下标取值
>>> a=[1,2,3,4,5] >>> a[2] 3
2.切割整个对象
>>> a=[0,1,2,3,4,5,6,7,8] >>> a[:] [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> a[::] [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> a[::-1] [8, 7, 6, 5, 4, 3, 2, 1, 0]
3.切割时,其start,end均为正数时,其值表示下标的意思
>>> a=[1,2,3,4,5,6,7,8,9] >>> a[1:5] [2, 3, 4, 5] >>> a[1:5:-1] //1~5是从左到右不满足-1的顺序所以为空 [] >>> a[:4] [1, 2, 3, 4] >>> a[:4:-1] //注意为倒叙输出 [9, 8, 7, 6] >>> a[4::-1] [5, 4, 3, 2, 1]
理解倒叙如a[:4:-1]可以理解为最后一位为a[4]但要从右往左输所以为[9,8,7,6]
4.切割时,start,end均为负数。
>>> a=[1,2,3,4,5,6,7,8,9] >>> a[-1:-6] //-1~-6其默认顺序从右往左,与其矛盾所以为空 [] >>> a[-1:-6:-1] [9, 8, 7, 6, 5] >>> a[:-6] [1, 2, 3] >>> a[-6::-1] [4, 3, 2, 1]
5.切割时,start,end有正有负。
>>> a=[1,2,3,4,5,6,7,8,9] >>> a[1:-6] [2, 3] >>> a[1:-6:-1] []
6.连续切片
>>> a [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[:8][2:5][-1:] //注意最后[-1:]取的是a[-1],因为其为从左往右,其为最后一位,所以只取a[-1] [5]
7.其他对象的切片
>>> a=(1,2,3,4) //元组类型 >>> a[1:2] (2,) >>> s="abcdefg" //字符串类型 >>> s[1:4] 'bcd' >>> for i in range(1,100)[2::3][-10:]: //对范围1~100内进行切割 ... print(i) ... 72 75 78 81 84 87 90 93 96 99
8.其参数也可以是表达式
如a[2+1:3*2:6*4]---------a[3:6:2]



