首先得說(shuō)說(shuō)列表為什么需要拷貝,就是為了解決簡(jiǎn)單賦值操作,傳地址的問(wèn)題,因?yàn)橘x值過(guò)去的列表,其實(shí)指向的是同一個(gè)地址,問(wèn)題說(shuō)明看代碼
成都創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、電商網(wǎng)站制作開發(fā)、成都小程序開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
a = [1,2,3]
b = a
# list類型,簡(jiǎn)單賦值操作,是傳地址
print(id(a))
print(id(b))
b[1] = 6
print(b)
print(a)
執(zhí)行結(jié)果,輸出的是:
2460317409864
2460317409864
[1, 6, 3]
[1, 6, 3]
#同一地址,修改b的列表,a也會(huì)同時(shí)改變。
a = [1,2,3]
b = a.copy()
print(id(a))
print(id(b))
b[1] = 6
print(b)
print(a)
但是由于copy只是淺拷貝,其只拷貝一層
# 出現(xiàn)下列問(wèn)題的原因是,copy‘函數(shù)是個(gè)淺拷貝函數(shù),即只拷貝一層內(nèi)容
# 深拷貝需要使用copy模塊
a = [1,2,3,[10,20,30]]
b = a.copy()
print(id(a))
print(id(b))
print('*' * 20)
print(id(a[3]))
print(id(b[3]))
a[3][2]=666
print(a)
print(b)
以上代碼輸出結(jié)果為:
2963694903944
2964112968904
********************
2963694903880
2963694903880
[1, 2, 3, [10, 20, 666]]
[1, 2, 3, [10, 20, 666]]
接下來(lái)演示一下深拷貝
import copy
a = [1,2,3,[10,20,30]]
b = copy.deepcopy(a) #這里不一樣哦
print(id(a))
print(id(b))
print('*' * 20)
print(id(a[3]))
print(id(b[3]))
a[3][2]=666
print(a)
print(b)
#輸出結(jié)果:
2620494013064
2620883635400
********************
2620494013000
2620495283144
[1, 2, 3, [10, 20, 666]]
[1, 2, 3, [10, 20, 30]]
#這才是我們想要得到的目的
不明白的可以自己實(shí)踐操作試試
分享標(biāo)題:python列表--淺拷貝與深拷貝的區(qū)別
轉(zhuǎn)載來(lái)源:http://jinyejixie.com/article26/ggcpjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、企業(yè)建站、商城網(wǎng)站、網(wǎng)站營(yíng)銷、做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容