Python中淺拷貝copy與深拷貝deepcopy的簡(jiǎn)單理解
以下是個(gè)人對(duì)Python深淺拷貝的通俗解釋,易于繞開(kāi)復(fù)雜的Python數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)來(lái)進(jìn)行理解!
- 高級(jí)語(yǔ)言中變量是對(duì)內(nèi)存及其地址的抽象,Python的一切變量都是對(duì)象。
- 變量的存儲(chǔ)采用了引用語(yǔ)義的方式,存儲(chǔ)的只是一個(gè)變量的值所對(duì)應(yīng)的地址信息。
- 變量的每一次初始化(賦值),即將新的內(nèi)容的地址賦給變量。
- 復(fù)雜數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的是各個(gè)元素的值得存儲(chǔ)位置。
- 進(jìn)行增刪改等操作時(shí)不改變數(shù)據(jù)本身的id,改變的各個(gè)元素的地址引用。
- 改變?nèi)魏我粋€(gè)擁有相同id的變量時(shí),其他相同id的變量也會(huì)相應(yīng)改變。
- copy.copy(object),拷貝的是內(nèi)嵌套結(jié)構(gòu)的地址引用,當(dāng)內(nèi)嵌套結(jié)構(gòu)發(fā)生變化時(shí),淺拷貝相應(yīng)的改變。
- copy.deepcopy(object),完全復(fù)制與變量相關(guān)的數(shù)據(jù)!跟別的操作不再有關(guān)系!
實(shí)例:
import copy li = [4,5] lts = [1,2,3,li] lt_copy= copy.copy(lts) lt_deepcopy = copy.deepcopy(lts) lts.append(6) lt_copy.append(7) print(lts,lt_copy) #輸出[1, 2, 3, [4, 5], 6] [1, 2, 3, [4, 5], 7] li.append(8) #內(nèi)部表格li插入 print(lts,lt_copy,lt_deepcopy) #輸出[1, 2, 3, [4, 5, 8], 6] [1, 2, 3, [4, 5, 8], 7] [1, 2, 3, [4, 5]] #可以看到當(dāng)對(duì)li操作時(shí),lt_deepcopy不受影響!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- python中淺復(fù)制copy與深復(fù)制deepcopy
- 圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別
- Python?copy()與deepcopy()方法之間有什么區(qū)別
- python中l(wèi)ist列表復(fù)制的幾種方法(賦值、切片、copy(),deepcopy())
- Python 中的 copy()和deepcopy()
- Python-copy()與deepcopy()區(qū)別詳解
- python中copy()與deepcopy()的區(qū)別小結(jié)
- 淺談python中copy和deepcopy中的區(qū)別
- Python 拷貝對(duì)象(深拷貝deepcopy與淺拷貝copy)
- python中copy和deepcopy的使用區(qū)別
相關(guān)文章
python如何基于redis實(shí)現(xiàn)ip代理池
這篇文章主要介紹了python如何基于redis實(shí)現(xiàn)ip代理池,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01Python實(shí)現(xiàn)的KMeans聚類(lèi)算法實(shí)例分析
這篇文章主要介紹了Python實(shí)現(xiàn)的KMeans聚類(lèi)算法,結(jié)合實(shí)例形式較為詳細(xì)的分析了KMeans聚類(lèi)算法概念、原理、定義及使用相關(guān)操作技巧,需要的朋友可以參考下2018-12-12Python中利用mpld3創(chuàng)建交互式Matplotlib圖表的代碼示例
mpld3 是一個(gè) Python 庫(kù),它將 Matplotlib 圖表轉(zhuǎn)換為 D3.js(JavaScript 繪圖庫(kù))可解釋的格式,從而實(shí)現(xiàn)了在瀏覽器中顯示并交互的功能,在本文中,我們將介紹如何使用 mpld3 在 Python 中創(chuàng)建交互式 Matplotlib 圖表,并提供代碼示例,需要的朋友可以參考下2024-05-05python Selenium等待元素出現(xiàn)的具體方法
在本篇文章里小編給大家分享的是一篇關(guān)于python Selenium等待元素出現(xiàn)的具體方法,以后需要的朋友們可以學(xué)習(xí)參考下。2021-08-08Python編程實(shí)現(xiàn)微信企業(yè)號(hào)文本消息推送功能示例
這篇文章主要介紹了Python編程實(shí)現(xiàn)微信企業(yè)號(hào)文本消息推送功能,結(jié)合實(shí)例形式分析了Python微信企業(yè)號(hào)文本消息推送接口的調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2017-08-08對(duì)Django項(xiàng)目中的ORM映射與模糊查詢的使用詳解
今天小編就為大家分享一篇對(duì)Django項(xiàng)目中的ORM映射與模糊查詢的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python程序設(shè)計(jì)入門(mén)(5)類(lèi)的使用簡(jiǎn)介
這篇文章主要介紹了Python類(lèi)的使用,需要的朋友可以參考下2014-06-06Python開(kāi)發(fā)的十個(gè)小貼士和技巧及長(zhǎng)常犯錯(cuò)誤
這篇文章主要介紹了Python開(kāi)發(fā)的十個(gè)小貼士和技巧,其中一些是初學(xué)這門(mén)語(yǔ)言常常會(huì)犯的錯(cuò)誤,小編給大家一一列舉出來(lái)了,需要的朋友可以參考下2018-09-09