Python淺拷貝與深拷貝用法實例
本文實例講述了Python淺拷貝與深拷貝用法。分享給大家供大家參考。具體分析如下:
>>> person=['name',['savings',100]] >>> hubby=person[:] >>> wifey=list(person) >>> [id(x) for x in person,hubby,wifey] [3074051788L, 3074061740L, 3074061996L] >>> [id(y) for x in person,hubby,wifey for y in x] [3074319552L,3073979916L,3074319552L,3073979916L,3074319552L,3073979916L] >>> hubby[0]='joe' >>> wifey[0]='jane' (['joe',['savings',100]],['jane',['savings',100]],['name',['savings',100]]) >>> hubby[1][1]=70 >>> hubby,wifey,person (['joe',['savings',70]],['jane',['savings',70]],['name',['savings',70]])
淺拷貝,創(chuàng)造了新的對象,但是它的對象引用確和被拷貝對象一致。
如果被拷貝對象的構(gòu)成元素是不可變類型,則拷貝對象對這個元素的改變,實際上是創(chuàng)造一個新的對象。
如果被拷貝對象的構(gòu)成元素是可變類型,則拷貝對象對這個元素的改變,實際上是在原對象的內(nèi)存空間上修改這個內(nèi)存空間里面的內(nèi)容。
這樣,才有hubby[1][1]=70會導(dǎo)致wifey,person相應(yīng)值的改變。
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
Python生命游戲?qū)崿F(xiàn)原理及過程解析(附源代碼)
這篇文章主要介紹了Python生命游戲?qū)崿F(xiàn)原理及過程解析(附源代碼),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
python中的try except與R語言中的tryCatch異常解決
這篇文章主要為大家介紹了python中的try except與R語言中的tryCatch異常解決的方式及分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
Python3開發(fā)監(jiān)控自動化觸發(fā)聲光報警
使用python制作一個自動監(jiān)控并觸發(fā)聲光報警是不是感覺很高端,很多人都會認為只是一件很難的事情,但實際很簡單就能實現(xiàn)。2023-07-07
python 解決Fatal error in launcher:錯誤問題
這篇文章主要介紹了python 解決Fatal error in launcher:錯誤問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
利用Python將Excel快速轉(zhuǎn)換成HTML的代碼實現(xiàn)
在日常的辦公和數(shù)據(jù)處理任務(wù)中,Excel文件因其強大的表格數(shù)據(jù)管理能力而備受歡迎,然而,在某些情況下,我們可能需要將Excel文件轉(zhuǎn)換成HTML格式,以便在網(wǎng)頁上展示或進行進一步的數(shù)據(jù)處理,本文將介紹如何利用Python將Excel文件快速轉(zhuǎn)換成HTML,并提供具體的代碼示例和案例2024-12-12

