圖解Python中的淺拷貝和深拷貝
Python淺拷貝和深拷貝
最直觀的理解就是:
1.深拷貝,拷貝的程度深,自己新開辟了一塊內存,將被拷貝內容全部拷貝過來了;
2.淺拷貝,拷貝的程度淺,只拷貝原數據的首地址,然后通過原數據的首地址,去獲取內容。
兩者的優(yōu)缺點對比
(1)深拷貝拷貝程度高,將原數據復制到新的內存空間中。改變拷貝后的內容不影響原數據內容。但是深拷貝耗時長,且占用內存空間。
(2)淺拷貝拷貝程度低,只復制原數據的地址。其實是將副本的地址指向原數據地址。修改副本內容,是通過當前地址指向原數據地址,去修改。所以修改副本內容會影響到原數據內容。但是淺拷貝耗時短,占用內存空間少。
淺拷貝
有一層數據類型,且數據類型時可變數據類型,例如:列表、字典

有一層數據類型,且數據類型時不可變數據類型,例如:元組、字符串

有兩層數據類型,外層為可變數據類型,內層為可變數據類型

有兩層數據類型,外層為可變數據類型,內層為不可變數據類型

有兩層數據類型,外層為不可變數據類型,內層為不可變數據類型

有兩層數據類型,外層為不可變數據類型,內層為可變數據類型

深拷貝
有一層數據類型,且數據類型時可變數據類型,例如:列表、字典

有一層數據類型,且數據類型時不可變數據類型,例如:元組、字符串

有兩層數據類型,外層為可變數據類型,內層為可變數據類型

有兩層數據類型,外層為可變數據類型,內層為不可變數據類型

有兩層數據類型,外層為不可變數據類型,內層為不可變數據類型

有兩層數據類型,外層為不可變數據類型,內層為可變數據類型

由實驗結果總結得:
當內層為可變數據類型時,深拷貝后內層外層地址均發(fā)生改變。當內層為不可變數據類型時,外層不管是可變還是不可變數據類型,使用深拷貝,都不會改變內層地址,只會在外層為可變數據類型時,改變外層地址。
使用淺拷貝是只能在外層數據類型為可變數據類型時,才能改變外層地址。而內層地址,無論是否為可變數據類型還是不可變數據類型,使用淺拷貝都不會改變內層數據類型地址。
到此這篇關于圖解Python中的淺拷貝和深拷貝的文章就介紹到這了,更多相關Python淺拷貝和深拷貝內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Python字典實現(xiàn)詞頻統(tǒng)計的方法
在Python中,利用字典進行詞頻統(tǒng)計是一種常見且強大的方式,通過對文本進行預處理并使用字典數據結構,可以輕松地統(tǒng)計文本中每個單詞出現(xiàn)的頻率,下面將詳細解釋這個過程,并提供多種例子,以幫助你更好地理解并應用這一技術,需要的朋友可以參考下2023-12-12
Pandas實現(xiàn)groupby分組統(tǒng)計的實踐
本文主要介紹了Pandas實現(xiàn)groupby分組統(tǒng)計的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01

