圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別
關(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)文章
PySide(PyQt)使用QPropertyAnimation制作動(dòng)態(tài)界面的示例代碼
文章介紹了如何使用PySide或PyQt的QPropertyAnimation類來創(chuàng)建動(dòng)態(tài)界面效果,感興趣的朋友一起看看吧2025-03-03Python通過keyboard庫實(shí)現(xiàn)模擬和監(jiān)聽鍵盤
這篇文章主要為大家詳細(xì)介紹了Python如何通過keyboard庫實(shí)現(xiàn)模擬和監(jiān)聽鍵盤,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-10-10python 實(shí)現(xiàn)rolling和apply函數(shù)的向下取值操作
這篇文章主要介紹了python 實(shí)現(xiàn)rolling和apply函數(shù)的向下取值操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06使用Python創(chuàng)建一個(gè)視頻管理器并實(shí)現(xiàn)視頻截圖功能
在這篇博客中,我將向大家展示如何使用 wxPython 創(chuàng)建一個(gè)簡單的圖形用戶界面 (GUI) 應(yīng)用程序,該應(yīng)用程序可以管理視頻文件列表、播放視頻,并生成視頻截圖,我們將逐步實(shí)現(xiàn)這些功能,并確保代碼易于理解和擴(kuò)展,感興趣的小伙伴跟著小編一起來看看吧2024-08-08python使用selenium模擬瀏覽器進(jìn)入好友QQ空間留言功能
這篇文章主要介紹了python使用selenium模擬瀏覽器進(jìn)入好友QQ空間留言,在本文實(shí)現(xiàn)過程中需要注意的是留言框和發(fā)表按鈕在不同的frame,發(fā)表在外面的一層,具體實(shí)現(xiàn)過程跟隨小編一起看看吧2022-04-04從入門到精通:Python項(xiàng)目打包與setup.py實(shí)戰(zhàn)指南
想要將你的Python項(xiàng)目分享給世界嗎?本指南將帶你從零開始,一步步學(xué)習(xí)如何打包你的Python項(xiàng)目,并創(chuàng)建一個(gè)專業(yè)的setup.py文件,我們將分享實(shí)用的技巧和最佳實(shí)踐,幫助你的項(xiàng)目在Python社區(qū)中脫穎而出,跟著我們的步伐,讓你的項(xiàng)目打包變得輕松有趣!2024-03-03使用Python對接OpenAi?API實(shí)現(xiàn)智能QQ機(jī)器人的方法
這篇文章主要介紹了使用Python對接OpenAi?API實(shí)現(xiàn)智能QQ機(jī)器人的方法,主要是提供一個(gè)方法思路,可以根據(jù)實(shí)現(xiàn)代碼延申出更多的解決方法,需要的朋友可以參考下2023-03-03python sorted函數(shù)原理解析及練習(xí)
這篇文章主要介紹了python sorted函數(shù)原理解析及練習(xí),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02TensorFlow人工智能學(xué)習(xí)數(shù)據(jù)類型信息及轉(zhuǎn)換
這篇文章主要為大家介紹了TensorFlow人工智能學(xué)習(xí)數(shù)據(jù)類型信息及轉(zhuǎn)換,2021-11-11python四種出行路線規(guī)劃的實(shí)現(xiàn)
路徑規(guī)劃中包括步行、公交、駕車、騎行等不同方式,今天借助高德地圖web服務(wù)api,實(shí)現(xiàn)出行路線規(guī)劃。感興趣的可以了解下2021-06-06