python基礎 part7 容器型別之列表

2021-10-04 09:22:19 字數 3777 閱讀 8350

鄙人學習筆記

開發工具:spyder

列表vs字串

拼接和拆分

淺拷貝vs深拷貝

列表推導式

由一系列變數組成的可變序列容器

圖示:

基本操作

方式建立列表

① ②list(可迭代物件)

新增元素

獲取元素

①索引②切片

刪除元素

①remove②del

舉個例子

**:

# 1. 建立空列表

list01 =

list01 =

list()

print

(list01)

# 2. 建立具有預設值的列表 [元素1,元素2....] list(可迭代物件)

list02 =[1

,true

,1.2

]list02 =

list

("abcd"

)# ['a', 'b', 'c', 'd']

list02 =

list

(range(5

))print

(list02)

# 3. 新增元素

"q")

"t")

print

(list02)

# insert 插入(索引,元素)

list02.insert(1,

"x")

print

(list02)

# 4. 刪除元素

# 移除指定的元素

list02.remove(2)

print

(list02)

# 刪除指定索引的元素

del list02[1]

print

(list02)

結果:

①列表和字串都是序列,元素之間有先後順序關係。

②字串是不可變的序列,列表是可變的序列。

③字串中每個元素只能儲存字元,而列表可以儲存任意型別。

④列表和字串都是可迭代物件。

①將多個字串拼接為乙個

"連線符".join(列表)
**:

list01 =

['a'

,'b'

,'c'

,'d'

]result =

"-".join(list01)

print

(result)

結果:

②將乙個字串拆分為多個

列表.split("分隔符")
**:

reason =

"a-b-c-d"

list02 = reason.split(

"-")

print

(list02)

結果:

①如果拷貝的物件裡的元素只有值,沒有引用,那淺拷貝和深拷貝沒有差別,都會將原有物件複製乙份,產生乙個新物件,對新物件裡的值進行修改不會影響原有物件,新物件和原物件完全分離開。

②如果拷貝的物件裡的元素包含引用(像乙個列表裡儲存著另乙個列表,存的就是另乙個列表的引用),那淺拷貝和深拷貝是不同的,淺拷貝雖然將原有物件複製乙份,但是依然儲存的是引用,所以對新物件裡的引用裡的值進行修改,依然會改變原物件裡的列表的值,新物件和原物件完全分離開並沒有完全分離開。而深拷貝則不同,它會將原物件裡的引用也新建立乙個,即新建乙個列表,然後放的是新列表的引用,這樣就可以將新物件和原物件完全分離開。

①當我們把乙個物件賦值給乙個新的變數時,賦的其實是該物件的位址。

②淺拷貝是按位拷貝物件,它會建立乙個新物件,這個物件有著原始物件屬性值的乙份精確拷貝。如果屬性是基本型別,拷貝的就是基本型別的值;如果屬性是引用型別,拷貝的就是記憶體位址 。

**:

import copy

list01 =[1

,[2,

3]]#淺拷貝

list02 = list01[:]

list03 = list01.copy(

)list04 = copy.copy(list01)

#深拷貝

list05 = copy.deepcopy(list01)

#賦值list06 = list01

list01[1]

[0]=

10print

(list01,

'\n'

, list02,

'\n'

, list03,

'\n'

, list04,

'\n'

, list05,

'\n'

, list06)

print(id

(list01)

,'\n',id

(list02)

,'\n',id

(list03)

,'\n',id

(list04)

,'\n',id

(list05)

,'\n',id

(list06)

)

結果:

[1, [10, 3]] 

[1, [10, 3]]

[1, [10, 3]]

[1, [10, 3]]

[1, [2, 3]]

[1, [10, 3]]

32746726088

32737471688

32744253192

32746726152

32722249544

32746726088

ps:深拷貝vs淺拷貝參考文獻

python中copy()和deepcopy()詳解

淺拷貝和深拷貝的區別?

徹底講明白淺拷貝與深拷貝

[對變數的操作 for 變數名 in 可迭代物件 if 條件]
**:

list01 =[3

,4,5

,6,7

,8,9

]# 列表推導式

list02 =

[item **

2for item in list01]

list03 =

[item **

2for item in list01 if item %2==

0]print

(list02)

print

(list03)

結果:

Part 7 曲線積分

分割,取近似,作和,取極限。極限存在,與分割法無關 空間曲線弧長 加權 線密度 的平面 權連續的 曲線。總結成一般的點函式形式 int f p mathrm ds lim limits sum limits nf p i delta s i sum limits n m m k 的上確界 分段光滑曲...

重看css權威指南 part7

這一部分是關於顏色和背景。屬性名 color 值 inherit 應用於 所有元素 繼承性 有 color影響文字的顏色,也會影響邊框的顏色 這一點上章講過 屬性名 background color 值 transparent inherit 初始值 transparent 應用於 所有元素 繼承性...

R開發 part7 環境空間

學習筆記,僅供參考,有錯必糾 環境空間是r語言中關於計算機方面的底層設計,主要用於r語言的環境載入器。通過環境空間,封裝了載入器的執行過程,讓使用者在不知道底層細節的情況下,可以任意載入使用到的第三方r語言程式包。在r語言中,不管是變數 物件或者函式,都存在於r的環境空間中,r程式在執行時變數 函式...