切片的结构
object[star:end:step]
star:开始 end:结束 step:步长的默认值是1,可为负数,默认方向是从左往右,附属代表从右往左
1.获取单个值
a[0] 0 a[-4] 6
2.切割完整对象
>>> a[:] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[::] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[::-1]#-1 从右往左 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3.star和end全为正数的情况下
>>> a[1:6] [1, 2, 3, 4, 5] >>> a[1:6:-1] [] >>> a[:6] [0, 1, 2, 3, 4, 5] >>> a[6:] [6, 7, 8, 9] >>> a[6::-1] [6, 5, 4, 3, 2, 1, 0]
4.star和end全部为负数的情况下
>>> a[-1:-6] [] >>> a[-1:-6:-1] [9, 8, 7, 6, 5] >>> a[:-6] [0, 1, 2, 3] >>> a[-6:-1] [4, 5, 6, 7, 8] >>> a[-6:] [4, 5, 6, 7, 8, 9] >>> a[-6::-1] [4, 3, 2, 1, 0]
5.star和end分别为正数和负数的情况下
>>> a = [0,1,2,3,4,5,6,7,8,9] >>> a[1:-6] [1, 2, 3] >>> a[-1:-6] [] >>> a[1:-6:-1] [] >>> a[-1:6] [] >>> a[-1:6:-1] [9, 8, 7]
6.连续切片操作
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[:8][2:5][-1:] [4] a[:8]---- [0 1 2 3 4 5 6 7]---[2:5] ---[2,3,4]--[-1:]---[4]
7.其他对象的切片操作
>>> t = (1,2,3,4) >>> t[1:3] (2, 3) >>> s = "ABCDEFG" >>> s[1:3] 'BC' >>> for i in range(1,100)[2::3][-10:]: ... print(i) ... 72 75 78 81 8487 90 93 96 99
8.切片的三个参数是表达式
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[2+1:3*2:7%3] #a[3:6:1] [3, 4, 5]
9.取奇数位和偶数位
a[1::2] [1, 3, 5, 7, 9] >>> a[::2] [0, 2, 4, 6, 8]
list=[1,2,3,4,5,6,7]
list[3] ---- [4] list[2:4] ----[3,4] list[:5] ----[1,2,3,4,5] list[3:] -----[4,5,6,7] list[::-1] ------[7,6,5,4,3,2,1]



