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

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

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

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

先從一個(gè)簡單的例子入手吧 定義一個(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()

在這里插入圖片描述

可以看到,淺拷貝對淺層的數(shù)組進(jìn)行了復(fù)制,但深層的引用仍然是指向了原來的引用,這樣就會(huì)在操作b數(shù)組時(shí),會(huì)對原來的數(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ù)組,對原來的數(shù)組不產(chǎn)生影響。

  • 淺拷貝(shallowCopy)只是增加了一個(gè)指針指向已存在的內(nèi)存地址,
  • 深拷貝(deepCopy)是增加了一個(gè)指針并且申請了一個(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論