Python列表append()函數(shù)使用方法詳解_第1頁(yè)
Python列表append()函數(shù)使用方法詳解_第2頁(yè)
Python列表append()函數(shù)使用方法詳解_第3頁(yè)
Python列表append()函數(shù)使用方法詳解_第4頁(yè)
Python列表append()函數(shù)使用方法詳解_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Python列表append()函數(shù)使用方法詳解目錄1.基本使用2.任意類型元素3.列表同步3.1原理剖析3.2解決方案4.append()與extend()的區(qū)別總結(jié)

1.基本使用

append()函數(shù)可以向列表末尾添加元素

語(yǔ)法

list.append(element)

參數(shù)

element:任何類型的元素

實(shí)例:向列表末尾添加一個(gè)元素

name_list=['zhangsan','lisi','wangwu']

name_list.append('zhaoliu')

print(name_list)

輸出:

[zhangsan,lisi,wangwu,zhaoliu]

需要注意的是,append()函數(shù)添加的元素在列表的「末尾」而不是任意位置

2.任意類型元素

append()函數(shù)可以向列表末尾添加「任意類型」的元素

實(shí)例:添加普通類型(數(shù)值、字符串)元素

list1=['zhangsan','lisi','wangwu']

list1.append(1)#添加整形

print(list1)

list1.append('str')#添加字符型

print(list1)

輸出:

[zhangsan,lisi,wangwu,1]

[zhangsan,lisi,wangwu,1,str]

實(shí)例:添加集合類型(列表,元祖)元素

list1=['zhangsan']

list1.append([1,2,3])#添加列表

print(list1)

list1.append((4,5,6))#添加元祖

print(list1)

輸出:

[zhangsan,[1,2,3]]

[zhangsan,[1,2,3],(4,5,6)]

3.列表同步

使用append()函數(shù)添加列表時(shí),是添加列表的「引用地址」而不是添加列表內(nèi)容,當(dāng)被添加的列表發(fā)生變化時(shí),添加后的列表也會(huì)同步發(fā)生變化。

list1=['zhangsan']

a=[1,2,3]

list1.append(a)#列表list1添加列表a

print(list1)

a.append(4)#列表a發(fā)生變化

list1.append(a)

print(list1)#列表list1也會(huì)同步變化

輸出:

[zhangsan,[1,2,3]]

[zhangsan,[1,2,3,4],[1,2,3,4]]

3.1原理剖析

從輸出結(jié)果可以發(fā)現(xiàn),當(dāng)添加的列表發(fā)生變化時(shí),先前添加的內(nèi)容也發(fā)生了改變,這會(huì)使程序出現(xiàn)意料之外的問題,我們使用id()函數(shù)驗(yàn)證一下

list1=['zhangsan']

a=[1,2,3]

list1.append(a)

print(a,id(a))#列表a的引用地址

print(list1[1],id(list1[1]))#添加到列表后的引用地址

輸出:

[1,2,3]2992145244608

[1,2,3]2992145244608

3.2解決方案

從輸出結(jié)果可以看出,問題的原因就在引用地址上面。這里補(bǔ)充兩個(gè)概念

淺拷貝:拷貝這個(gè)對(duì)象的引用地址深拷貝:拷貝對(duì)象的內(nèi)容

使用copy.deepcopy()函數(shù)深拷貝列表的內(nèi)容而不是列表的引用地址

list1=['zhangsan']

a=[1,2,3]

list1.append(copy.deepcopy(a))

print(a,id(a))#列表a的引用地址

print(list1[1],id(list1[1]))#添加到列表后的引用地址

輸出:

[1,2,3]1963457096704

[1,2,3]1963458936640

由輸出結(jié)果可以確定,添加后的列表不再引用源列表的地址

使用「深拷貝」添加列表的內(nèi)容而不是引用地址,從而解決列表同步的問題

list1=['zhangsan']

a=[1,2,3]

list1.append(copy.deepcopy(a))#深拷貝列表a

print(list1)

a.append(4)#列表a發(fā)生變化

list1.append(copy.deepcopy(a))#深拷貝列表a

print(list1)#列表list1不再同步變化

輸出:

[zhangsan,[1,2,3]]

[zhangsan,[1,2,3],[1,2,3,4]]

列表同步問題解決了

4.append()與extend()的區(qū)別

append添加的是元素本身,而extend添加的是元素的值append可以添加所有類型元素,而extend只能添加序列

比如,添加列表時(shí),append會(huì)添加整個(gè)列表,而extend只會(huì)添加列表中的值

list1=['zhangsan','lisi','wangwu']

list2=['zhangsan','lisi','wangwu']

list1.append([1,2,3])

print('append添加整個(gè)列表:',list1)

list2.extend([1,2,3])

print('extend添加列表的值:',list2)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論