切片操作
我們在前面學習字串時,學習過字串的切片操作,對於列表的切片操作和字串類似。
切片是 python 序列及其重要的操作,適用於列表、元組、字串等等。切片的格式如下:
切片 slice 操作可以讓我們快速提取子列表或修改。標準格式為:
[起始偏移量 start:終止偏移量 end[:步長 step]]
注:當步長省略時順便可以省略第二個冒號
典型操作(三個量為正數的情況)如下:
操作和說明
示例結果
[:]提取整個列表
[10,20,30][:]
[10,20,30]
[start:]從start索引開始到結尾
[10,20,30][1:]
[20,30]
[:end]從頭開始直到end-1
[10,20,30][:2]
[10,20]
[start:end]從start到end-1
[10,20,30,40][1:3]
[20,30]
[start:end:step]從start提
取到end-1,步長是step
[10,20,30,40,50,60,70][1:6:2]
[20,40,60]
其他操作(三個量為負數)的情況:
示例說明
結果[10,20,30,40,50,60,70][-3:]
倒數三個
[50,60,70]
10,20,30,40,50,60,70][-5:-3]
倒數第五個到倒數第三個(包頭不包尾)
[30,40]
[10,20,30,40,50,60,70][::-1]
步長為負,從右到左反向提取
[70, 60, 50, 40, 30, 20, 10]
切片操作時,起始偏移量和終止偏移量不在[0,字串長度-1]這個範圍,也不會報錯。起始偏移量小於 0 則會當做 0,終止偏移量大於「長度-1」會被當成」長度-1」。
例如:>>> [10, 20, 30, 40][1:30]
[20, 30, 40]
列表的遍歷
for x in listobj:
print(x)
複製列表所有的元素到新列表物件
如下**實現列表元素的複製了嗎?
list1 = [30,40,50]
list2 = list1
只是將 list2 也指向了列表物件,也就是說 list2 和 list2 持有位址值是相同的,列表物件本身的元素並沒有複製。
我們可以通過如下簡單方式,實現列表元素內容的複製:
list1 = [30,40,50]
list2 = + list1
注:我們後面也會學習 copy 模組,使用淺複製或深複製實現我們的複製操作。
Python入門(三) 列表切片 元組
在機器學習或深度學習中,最開始有一步需要對資料進行清洗篩選等預處理操作,其中有乙個很基礎但又很重要的操作就是擷取資料,如果使用python進行開發,這就需要用到python中對於列表的切片操作。今天簡單地看了一下切片,記了一點筆記備份於此。pigs pig1 pig2 pig3 pig4 pig5 ...
python學習筆記8 列表與切片
python中最基本的額資料結構。列表中的每個元素都分配了乙個數字 代表元素的位置 列表的定義 變數名稱 1,2,3,4,5,6,7 全域性函式下list構造乙個列表 變數名稱 得到乙個空表。如果list中有乙個引數,必須是乙個列表 判斷乙個元素在不在列表中 變數 in 容器 這裡使用的是列表lis...
python 切片 Python 列表切片
想必很多人都使用過列表的切片,通過切片可以從列表中獲取乙個或多個元素,但你真的了解切片?一 一般玩法 name a b c d e f g h name 0 2 獲取 0 2 中間的元素,不包括索引為 2 的元素 a b name 2 從 0 開始切,可省略 0 a b name 1 同樣地,切到最...