python中copy和deepcopy的使用區(qū)別
python中標(biāo)識一個對象唯一身份的是:對象的id(內(nèi)存地址),對象類型,對象值。
deepcopy是真正意義上的復(fù)制,深拷貝,被復(fù)制對象完全復(fù)制一遍作為獨立的新個體,新開辟一塊空間。
淺拷貝,不會產(chǎn)生獨立對象,等于賦值,只是對原有數(shù)據(jù)塊打上新標(biāo)簽,其中一個標(biāo)簽改變,數(shù)據(jù)塊就會變化。淺拷貝等于賦值,也可以通過copy實現(xiàn),copy僅拷貝對象本身,淺拷貝不會對其中的子對象進行拷貝,如果對子對象進行修改,拷貝結(jié)果也會隨著修改。
- 復(fù)制的對象中無復(fù)雜子對象,即列表中不嵌套列表,原來值的改變并不會影響淺復(fù)制的值,同時淺復(fù)制的值改變也并不會影響原來的值。原來值的id值與淺復(fù)制原來的值不同。
- 復(fù)制的對象中有復(fù)雜子對象 (例如列表中的一個子元素是一個列表)如果改變復(fù)雜子對象的值(列表中的值)會影響淺復(fù)制的值。
import copy a = [1,2,3,[4,5],1] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(9) a[3].append(6) print(a) #[1, 2, 3, [4, 5, 6], 1, 9] print(b) #[1, 2, 3, [4, 5, 6], 1, 9] print(c) #[1, 2, 3, [4, 5, 6], 1] print(d) #[1, 2, 3, [4, 5], 1] print(id(a)) #4594148288 print(id(b)) #4594148288 print(id(c)) #4594455328 print(id(d)) #4592688496 x = 'Hello World' y = x z = copy.copy(x) w = copy.deepcopy(x) print(id(x)) #4617118576 print(id(y)) #4617118576 print(id(z)) #4617118576 print(id(w)) #4617118576 # 對于不可變類型(元組、數(shù)值,字符串等)為淺拷貝,對象的id值與淺復(fù)制原來的值相同 # 對于可變類型(列表、字典等)為深拷貝,
到此這篇關(guān)于python中copy和deepcopy的使用區(qū)別的文章就介紹到這了,更多相關(guān)python copy deepcopy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python代碼實現(xiàn)PDF文檔與SVG文件之間的轉(zhuǎn)換
PDF作為普遍采用的文件格式,確保了文檔的一致性和可靠性,而SVG(可縮放矢量圖形)則因其矢量性質(zhì),在網(wǎng)頁設(shè)計、高分辨率打印及動態(tài)交互內(nèi)容中展現(xiàn)出無與倫比的優(yōu)勢,本文將介紹如何使用Python將PDF文件轉(zhuǎn)換為SVG文件以及將SVG文件轉(zhuǎn)換為PDF文件,需要的朋友可以參考下2024-05-05
零基礎(chǔ)學(xué)Python(一)Python環(huán)境安裝
本文是此系列的第一篇,所以開始先胡扯一番,然后再分別介紹LINUX系統(tǒng),windows系統(tǒng),MAC系統(tǒng)下如何安裝Python環(huán)境,希望對大家有所幫助2014-08-08
Python+opencc庫實現(xiàn)簡體繁體字轉(zhuǎn)換
opencc就是一個非常好的中文字轉(zhuǎn)換庫,其中包含了非常豐富的對應(yīng)字詞表,本文主要介紹了如何使用opencc庫實現(xiàn)簡體繁體字轉(zhuǎn)換,感興趣的可以了解下2024-11-11
Python使用Phantomjs截屏網(wǎng)頁的方法
今天小編就為大家分享一篇Python使用Phantomjs截屏網(wǎng)頁的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
python kmeans聚類簡單介紹和實現(xiàn)代碼
這篇文章主要為大家詳細介紹了python kmeans聚類簡單介紹和實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
Python面向?qū)ο髮崿F(xiàn)一個對象調(diào)用另一個對象操作示例
這篇文章主要介紹了Python面向?qū)ο髮崿F(xiàn)一個對象調(diào)用另一個對象操作,結(jié)合實例形式分析了Python對象的定義、初始化、調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
python 爬蟲網(wǎng)頁登陸的簡單實現(xiàn)
這篇文章主要介紹了python 爬蟲網(wǎng)頁登陸的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

