python中深拷貝與淺拷貝的區(qū)別是什么-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)python中深拷貝與淺拷貝的區(qū)別是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊,在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十余年,專業(yè)且經(jīng)驗豐富。十余年網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為數(shù)千家中小企業(yè)提供了網(wǎng)站設(shè)計制作、做網(wǎng)站解決方案,按需定制開發(fā),設(shè)計滿意,售后服務(wù)無憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!

淺拷貝:拷貝了最外圍的對象本身,內(nèi)部的元素都只是拷貝了一個引用而已。也就是,把對象復(fù)制一遍,但是該對象中引用的其他對象我不復(fù)制

深拷貝:外圍和內(nèi)部元素都進(jìn)行了拷貝對象本身,而不是引用。也就是,把對象復(fù)制一遍,并且該對象中引用的其他對象我也復(fù)制。

深淺拷貝的作用

1,減少內(nèi)存的使用

2,以后在做數(shù)據(jù)的清洗、修改或者入庫的時候,對原數(shù)據(jù)進(jìn)行復(fù)制一份,以防數(shù)據(jù)修改之后,找不到原數(shù)據(jù)。

淺拷貝(copy):拷貝父對象,不會拷貝對象的內(nèi)部的子對象。

深拷貝(deepcopy): copy 模塊的 deepcopy 方法,完全拷貝了父對象及其子對象。

>>>a = {1: [1,2,3]}>>> b = a.copy()>>> a, b({1: [1, 2, 3]}, {1: [1, 2, 3]})>>> a[1].append(4)>>> a, b({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

深度拷貝需要引入 copy 模塊:

>>>import copy>>> c = copy.deepcopy(a)>>> a, c({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})>>> a[1].append(5)>>> a, c({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

1、b = a.copy(): 淺拷貝, a 和 b 是一個獨(dú)立的對象,但他們的子對象還是指向統(tǒng)一對象(是引用)。

python中深拷貝與淺拷貝的區(qū)別是什么

2、b = copy.deepcopy(a): 深度拷貝, a 和 b 完全拷貝了父對象及其子對象,兩者是完全獨(dú)立的。

python中深拷貝與淺拷貝的區(qū)別是什么

上述就是小編為大家分享的python中深拷貝與淺拷貝的區(qū)別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標(biāo)題名稱:python中深拷貝與淺拷貝的區(qū)別是什么-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://muchs.cn/article16/djgcgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、動態(tài)網(wǎng)站響應(yīng)式網(wǎng)站、網(wǎng)頁設(shè)計公司自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司