python復(fù)制與引用用法分析
本文實例講述了python復(fù)制與引用用法。分享給大家供大家參考。具體分析如下:
簡單復(fù)制是引用
a=[1,23,4] b=a #這是引用 b.append(2323) print(a,b) #([1, 23, 4, 2323], [1, 23, 4, 2323])
使用copy.copy進(jìn)行淺拷貝
import copy c=copy.copy(b)#拷貝 c.append(1) print(b,c)#([1, 23, 4, 2323], [1, 23, 4, 2323, 1]) list1=[['a'],[1,2,4],[23,'a']] list_copy=copy.copy(list1) #淺拷貝,生成了一個新對象,但是新對象內(nèi)的屬性和內(nèi)容仍然是原對象的引用 #當(dāng)對新對象進(jìn)行整體修改的時候修改的是本身 list_copy.append('append') print(list_copy)#[['a'], [1, 2, 4], [23, 'a'], 'append'] print(list1)#[['a'], [1, 2, 4], [23, 'a']] #當(dāng)對新對象的內(nèi)容進(jìn)行修改的時候修改的是原對象,因為它仍然是引用 list_copy[1].append('append+') print(list_copy)#[['a'], [1, 2, 4, 'append+'], [23, 'a'], 'append'] print(list1)#[['a'], [1, 2, 4, 'append+'], [23, 'a']]
使用copy.deepcopy進(jìn)行迭代拷貝,之后就可以更改新對象的屬性而不影響原對象了,只是效率會下降和內(nèi)存占有量會上升。
對于list,dict,set等可直接使用x(object),object為相應(yīng)類型,進(jìn)行拷貝,這是最簡單最直接有效地方式。
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
精選39道Python數(shù)據(jù)分析面試題提早備戰(zhàn)金三銀四
這篇文章主要為大家介紹了39道Python數(shù)據(jù)分析的面試題問答攻略幫助大家提早備戰(zhàn)金三銀四,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多精進(jìn),早日度過寒冬2023-12-12Python 快速實現(xiàn)CLI 應(yīng)用程序的腳手架
本篇文章主要介紹了Python 快速實現(xiàn)CLI 應(yīng)用程序的腳手架,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12matplotlib.subplot()畫子圖并共享y坐標(biāo)軸的方法
Matplotlib的可以把很多張圖畫到一個顯示界面,本文主要介紹matplotlib.subplot()畫子圖并共享y坐標(biāo)軸的方法,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實例
這篇文章主要介紹了python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python3的UnicodeDecodeError解決方法
這篇文章主要介紹了python3的UnicodeDecodeError解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12解決Python內(nèi)層for循環(huán)如何break出外層的循環(huán)的問題
今天小編就為大家分享一篇解決Python內(nèi)層for循環(huán)如何break出外層的循環(huán)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06