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)文章
centos+nginx+uwsgi部署django項目上線
本文主要介紹了centos+nginx+uwsgi部署django項目上線,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
torch 中各種圖像格式轉(zhuǎn)換的實現(xiàn)方法
這篇文章主要介紹了torch 中各種圖像格式轉(zhuǎn)換的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決
這篇文章主要介紹了pyinstaller打包可執(zhí)行程序過程中的常見錯誤解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
使用并行處理提升python?for循環(huán)速度的過程
Python?是一門功能強大的編程語言,但在處理大規(guī)模數(shù)據(jù)或復(fù)雜計算任務(wù)時,性能可能成為一個瓶頸,這篇文章主要介紹了使用并行處理提升python?for循環(huán)速度,需要的朋友可以參考下2023-06-06
帶你徹底搞懂python操作mysql數(shù)據(jù)庫(cursor游標(biāo)講解)
這篇文章主要介紹了帶你徹底搞懂python操作mysql數(shù)據(jù)庫(cursor游標(biāo)講解),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
windowns使用PySpark環(huán)境配置和基本操作
pyspark是Spark對Python的api接口,可以在Python環(huán)境中通過調(diào)用pyspark模塊來操作spark,這篇文章主要介紹了windowns使用PySpark環(huán)境配置和基本操作,感興趣的可以了解一下2021-05-05

