淺談Python 列表字典賦值的陷阱
今天在用python刷leetcode 3Sum problem時(shí),調(diào)入到了一個(gè)大坑中,檢查半天并沒(méi)有任何邏輯錯(cuò)誤,但輸出結(jié)果卻總是不對(duì),最終通過(guò)調(diào)試發(fā)現(xiàn)原來(lái)python中l(wèi)ist和dict類(lèi)型直接賦值竟然是淺拷貝!?。∫虼?,在實(shí)際實(shí)驗(yàn)中,若要實(shí)現(xiàn)深拷貝,建立新list或dict,使新建的list或dict變量和以前的變量只是具有相同的值,但是卻具有不同的存儲(chǔ)地址,保證在改變以前的list變量的時(shí)候,不會(huì)對(duì)新的list產(chǎn)生任何影響。
python中的深拷貝的實(shí)現(xiàn)需要通過(guò)copy.deepcopy函數(shù)來(lái)實(shí)現(xiàn)。
具體操作如下:
# python >>> from copy import deepcopy
- 關(guān)于dict的深淺拷貝實(shí)驗(yàn)示例
>>> a=dict() #建立字典 >>> a['e1']=1 #添加字典元素 >>> a['e2']=2 >>> a #查看字典內(nèi)容,輸出如下 {'e1': 1, 'e2': 2} >>> b=a #淺拷貝 >>> c=deepcopy(a) #深拷貝 >>> a['e1']=3 #改變字典的內(nèi)容,觀察深淺拷貝變量的變化 >>> a {'e1': 3, 'e2': 2} >>> b {'e1': 3, 'e2': 2} >>> c {'e1': 1, 'e2': 2}
- 關(guān)于list的深淺拷貝實(shí)驗(yàn)示例
>>> a=[1, 2, 2, 3] >>> b=deepcopy(a) >>> c=a >>> a.remove(2) #去掉列表a中的2,注意一次remove只去掉一個(gè)元素 >>> a [1, 2, 3] >>> b [1, 2, 2, 3] >>> c [1, 2, 3]
以上這篇淺談Python 列表字典賦值的陷阱就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django配置Mysql數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)
本文主要介紹了Django配置Mysql數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python數(shù)據(jù)類(lèi)型之Tuple元組實(shí)例詳解
這篇文章主要介紹了Python數(shù)據(jù)類(lèi)型之Tuple元組,結(jié)合實(shí)例形式分析了Python元組類(lèi)型的概念、定義、讀取、連接、判斷等常見(jiàn)操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-05-05Python confluent kafka客戶端配置kerberos認(rèn)證流程詳解
這篇文章主要介紹了Python confluent kafka客戶端配置kerberos認(rèn)證流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10python 實(shí)現(xiàn)登錄網(wǎng)頁(yè)的操作方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)登錄網(wǎng)頁(yè)的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python3.6數(shù)獨(dú)問(wèn)題的解決
這篇文章主要為大家詳細(xì)介紹了python3.6數(shù)獨(dú)問(wèn)題的解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成
今天小編就為大家分享一篇python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11