圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別
關(guān)于淺拷貝和深拷貝想必大家在學(xué)習(xí)中遇到很多次,這也是面試中常常被問到的問題,借由這個(gè)時(shí)間,整理一下淺拷貝和深拷貝的關(guān)系
先從一個(gè)簡(jiǎn)單的例子入手吧 定義一個(gè)數(shù)組的嵌套結(jié)構(gòu)
a = [1,2,3,[4,5,[6]]]
看一下它的gable frame

當(dāng)我們做一下淺拷貝copy()時(shí),global frame
a = [1,2,3,[4,5,[6]]] //淺拷貝 b = a.copy()

可以看到,淺拷貝對(duì)淺層的數(shù)組進(jìn)行了復(fù)制,但深層的引用仍然是指向了原來的引用,這樣就會(huì)在操作b數(shù)組時(shí),會(huì)對(duì)原來的數(shù)組產(chǎn)生修改。
深拷貝
import copy a = [1,2,3,[4,5,[6]]] //淺拷貝 b = a.copy() //深拷貝 c = copy.deepcopy(a)

可以看到,深拷貝將其內(nèi)部引用也進(jìn)行了拷貝,在進(jìn)行數(shù)據(jù)操作時(shí)是完全使用新數(shù)組,對(duì)原來的數(shù)組不產(chǎn)生影響。
- 淺拷貝(shallowCopy)只是增加了一個(gè)指針指向已存在的內(nèi)存地址,
- 深拷貝(deepCopy)是增加了一個(gè)指針并且申請(qǐng)了一個(gè)新的內(nèi)存,使這個(gè)增加的指針指向這個(gè)新的內(nèi)存,
使用深拷貝的情況下,釋放內(nèi)存的時(shí)候不會(huì)因?yàn)槌霈F(xiàn)淺拷貝時(shí)釋放同一個(gè)內(nèi)存的錯(cuò)誤。
到此這篇關(guān)于圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別的文章就介紹到這了,更多相關(guān)Python淺拷貝copy()和深拷貝deepcopy()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows安裝TensorFlow和Keras遇到的問題及其解決方法
這篇文章主要介紹了windows安裝TensorFlow和Keras遇到的問題及其解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-07-07
Python虛擬環(huán)境virtualenv安裝的詳細(xì)教程保姆級(jí)(Windows和linux)
本文詳細(xì)介紹了如何在Linux和Windows系統(tǒng)上安裝和配置virtualenv虛擬環(huán)境,包括依賴包安裝、系統(tǒng)環(huán)境變量設(shè)置、激活和退出環(huán)境,以及在PyCharm中的應(yīng)用和導(dǎo)出依賴文件,需要的朋友可以參考下2024-09-09
Python?Pandas刪除替換并提取其中的缺失值NaN(dropna,fillna,isnull)
這篇文章主要給大家介紹了關(guān)于Python?Pandas刪除替換并提取其中的缺失值NaN(dropna,fillna,isnull)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Pandas具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01
python redis 批量設(shè)置過期key過程解析
這篇文章主要介紹了python redis 批量設(shè)置過期key過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Python使用smtplib庫(kù)發(fā)送電子郵件
Python提供了smtplib庫(kù),用于發(fā)送電子郵件,本文將詳細(xì)介紹如何使用Python的smtplib庫(kù)來發(fā)送電子郵件,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
簡(jiǎn)單快捷:NumPy入門教程的環(huán)境設(shè)置
NumPy是Python語言的一個(gè)擴(kuò)展程序庫(kù),支持高階大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù),本教程是為那些想了解NumPy的基礎(chǔ)知識(shí)和各種功能的人準(zhǔn)備的,它對(duì)算法開發(fā)人員特別有用,需要的朋友可以參考下2023-10-10
PyCharm 2020.1版安裝破解注冊(cè)碼永久激活(激活到2089年)
這篇文章主要介紹了PyCharm 2020.1版安裝破解注冊(cè)碼永久激活(激活到2089年),需要的朋友可以參考下2020-09-09
Python設(shè)計(jì)模式之單例模式實(shí)例
這篇文章主要介紹了設(shè)計(jì)模式中的單例模式Python實(shí)例,需要的朋友可以參考下2014-04-04
tensorflow 限制顯存大小的實(shí)現(xiàn)
今天小編就為大家分享一篇tensorflow 限制顯存大小的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

