列表切片a[i:j:k]
- (a[1:5:1] a[1:-5:1] a[-1:5:1] a[-1:-5:1]; a[1:5:-1] a[1:-5:-1] a[-1:5:-1] a[-1:-5:-1])
- 注意:步長爲正時,起點i=0爲默認值,可以省略;步長爲負時,起點i<0,i=-1爲默認值,可以省略
a=list(range(20)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
1. 當步長k>0時
- a[i:j:1] i=0默認可省略,步長大於0時無論i和j的正負情況,正序
集合1 = 從起點i開始向 a[] 尾部的所有元素的集合
集合2 = 從終點j( 排除j所在元素 )開始向 a[] 頭部的所有元素的集合
a[i:j:1]= 集合1與集合2的交集
- 舉例:
a[1:5:1]
Out[24]: [1, 2, 3, 4]
a[1:-5:1]
Out[25]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
a[-1:5:1]
Out[26]: []
a[-1:-5:1]
Out[27]: []
a[5:1:1]
Out[32]: []
a[5:-1:1]
Out[33]: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
a[-5:1:1]
Out[34]: []
a[-5:-1:1]
Out[35]: [15, 16, 17, 18]
2. 當步長k>0時
- a[i:j:-1] i=-1默認可省略,步長小於0時無論i和j的正負情況,逆序
集合1 = 從起點i開始向 a[] 頭部的所有元素的集合
集合2 = 從終點j( 排除j所在元素 )開始向 a[] 尾部的所有元素的集合
a[i:j:-1]= 集合1與集合2的交集
- 舉例:
a[1:5:-1]
Out[28]: []
a[1:-5:-1]
Out[29]: []
a[-1:5:-1]
Out[30]: [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6]
a[-1:-5:-1]
Out[31]: [19, 18, 17, 16]
a[5:1:-1]
Out[36]: [5, 4, 3, 2]
a[5:-1:-1]
Out[37]: []
a[-5:1:-1]
Out[38]: [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
a[-5:-1:-1]
Out[39]: []