列表切片a[i:j:k]各種情況總結

列表切片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時無論ij的正負情況,正序
    集合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時無論ij的正負情況,逆序
    集合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]: []
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章