20201007 037 列表 切片slice操作

2021-10-24 13:42:19 字數 1455 閱讀 7899

切片操作

我們在前面學習字串時,學習過字串的切片操作,對於列表的切片操作和字串類似。

切片是 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 同樣地,切到最...