Python切片:[i:j]與[i:j:s]

第一部分

a[i:j]的含義是將【a[i]到a[j-1]的元素】複製一遍,以生成一個切片,切片的數據類型與【被切片的對象】相同

示例代碼如下:

>>> list1 = [1, 2, 3, 4, 5]
>>> tuple1 = ('a', 'b', 'c', 'd', 'e')
>>> string1 = "abcde"

>>> print(list1[1:4])
[2, 3, 4]
>>> print(tuple1[1:4])
('b', 'c', 'd')
>>> print(string1[1:4])
bcd

第二部分

對於a[i:j]:當未指定i的值時,i默認爲0;當未指定j的值時,j默認爲len(a);當i與j均缺省時,即a[:]就相當於複製一份a。

示例代碼如下:

>>> list1 = [1, 2, 3, 4, 5]
>>> list1[:3] # 相當於list1[0:3]
[1, 2, 3]
>>> list1[3:] # 相當於list1[3:5]
[4, 5]
>>> list1[:] # 相當於list1[0:5],相當於a的副本
[1, 2, 3, 4, 5]

第三部分

a[i:j:s]中,i與j和上面所講的用法一樣;而s表示步長,默認值爲1。a[i:j:1]相當於a[i:j]。

(這裏是我最難以理解的部分,所以重點加粗)當步長s<0:i缺省時默認爲-1,j缺省時默認爲-(len(a)+1)。a[::-1]相當於a[-1:-len(a)-1:-1],這樣是從最後一個元素反過來到第一個元素複製一次,說白了就是倒敘輸出元素。

示例代碼如下:

>>> list1 = [1, 2, 3, 4, 5]
>>> list1[::-1] # list1的元素倒序
[5, 4, 3, 2, 1]
>>> list1[::-2] # 隔一個元素輸出
[5, 3, 1]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章