arr [start: end: step]
切取 [ start,end) 的元素,注意是 左闭 右开,步长为 step(当步长为负数表示逆序)。即左边取到 start,右边取不到 end
start 缺省表示 从最左边 index = 0 开始
end 缺省表示 取到最右边 index = len(arr) - 1
step 缺省表示 步长为 +1
正序切片
In [12]: a = [10,20,30,40,50]
In [15]: a[1:3]
Out[15]: [20, 30]
In [16]: a[1:100]
Out[16]: [20, 30, 40, 50]
In [26]: a[1:] # index = 1 及以后的全部元素 [1, + inf)
Out[26]: [20, 30, 40, 50]
逆序切片
In [12]: a = [10,20,30,40,50]
In [19]: a[3:1:-1]
Out[19]: [40, 30] # 取 index 区间 : [3, 1)
特殊缺省切片
In [12]: a = [10,20,30,40,50]
In [14]: a[:] # 取全部元素
Out[14]: [10, 20, 30, 40, 50]
In [23]: a[::] # 取全部元素
Out[23]: [10, 20, 30, 40, 50]
In [24]: a[-1] # 最后一个元素
Out[24]: 50
In [20]: a[:-1]
Out[20]: [10, 20, 30, 40] # 除了最后 1 个取全部 相当于区间 [0, -1), -1表示最后一个元素
In [21]: a[:-2]
Out[21]: [10, 20, 30] # 除了最后 2 个取全部,相当于 [0, -2),-2 表示倒数第二个元素
In [25]: a[::-1] # 全部逆序输出 相当于 a[4: 0: -1]
Out[25]: [50, 40, 30, 20, 10]
In [27]: a[2::-1] # 相当于 a[2: 0: -1]
Out[27]: [30, 20, 10]