欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別

 更新時間:2023年05月09日 11:33:58   作者:跳舞的猴子  
這篇文章主要介紹了Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別,淺拷貝和深拷貝想必大家在學(xué)習(xí)中遇到很多次,這也是面試中常常被問到的問題,本文就帶你詳細了解一下

關(guān)于淺拷貝和深拷貝想必大家在學(xué)習(xí)中遇到很多次,這也是面試中常常被問到的問題,借由這個時間,整理一下淺拷貝和深拷貝的關(guān)系

先從一個簡單的例子入手吧 定義一個數(shù)組的嵌套結(jié)構(gòu)

a = [1,2,3,[4,5,[6]]]

看一下它的gable frame

在這里插入圖片描述

當(dāng)我們做一下淺拷貝copy()時,global frame

a = [1,2,3,[4,5,[6]]] 
//淺拷貝
b = a.copy()

在這里插入圖片描述

可以看到,淺拷貝對淺層的數(shù)組進行了復(fù)制,但深層的引用仍然是指向了原來的引用,這樣就會在操作b數(shù)組時,會對原來的數(shù)組產(chǎn)生修改。

深拷貝

import copy
a = [1,2,3,[4,5,[6]]] 
//淺拷貝
b = a.copy()
//深拷貝
c = copy.deepcopy(a)

在這里插入圖片描述

可以看到,深拷貝將其內(nèi)部引用也進行了拷貝,在進行數(shù)據(jù)操作時是完全使用新數(shù)組,對原來的數(shù)組不產(chǎn)生影響。

  • 淺拷貝(shallowCopy)只是增加了一個指針指向已存在的內(nèi)存地址,
  • 深拷貝(deepCopy)是增加了一個指針并且申請了一個新的內(nèi)存,使這個增加的指針指向這個新的內(nèi)存,

使用深拷貝的情況下,釋放內(nèi)存的時候不會因為出現(xiàn)淺拷貝時釋放同一個內(nèi)存的錯誤。

到此這篇關(guān)于圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別的文章就介紹到這了,更多相關(guān)Python淺拷貝copy()和深拷貝deepcopy()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論