Python 中的 copy()和deepcopy()
前言:
在處理列表和字典時(shí),盡管傳遞引用常常是最方便的方法,但如果函數(shù)修改了傳入的列表或字典,可能不希望這些變動(dòng)影響原來的列表或字典。要做到這一點(diǎn),Python
提供了名為copy
的模塊,其中包含copy()
和deepcopy()
函數(shù)。
第一個(gè)函數(shù)copy.copy()
,可以用來復(fù)制列表或字典這樣的可變值,而不是只復(fù)制引用。
兩者的區(qū)別是copy.copy()
是這復(fù)制了列表或字典的值,但是引用還是同一個(gè)。而copy.deepcopy()
是產(chǎn)生一個(gè)新的引用使新的變量和被復(fù)制變量引用不同。
看下面的示例代碼:
1、copy.copy()
示例代碼:
import copy spam = ['A','B','C','D',[1,2,3,4]] cheese = copy.copy(spam) spam[0] = 42 print(spam)
運(yùn)行結(jié)果:
[42,'B','C','D',[1,2,3,4]]
根據(jù)結(jié)果可以看出,使用copy.copy()
函數(shù)時(shí),cheese
是復(fù)制了spam
列表引用,對(duì)spam
列表操作時(shí),也會(huì)對(duì)cheese
列表產(chǎn)生影響。這也被稱為淺copy
。
2、deepcopy.copy()
示例代碼:
#Python學(xué)習(xí)交流群:778463939 import copy spam = ['A','B','C','D',[1,2,3,4]] cheese = copy.deepcopy(spam)#不同部分 spam[0] = 42 print(spam)
運(yùn)行結(jié)果:
[42,'B','C','D',[1,2,3,4]]
根據(jù)結(jié)果可以看出,使用deepcopy()
時(shí),對(duì)spam
列表操作不會(huì)對(duì)cheese
列表產(chǎn)生影響,這是因?yàn)?code>deepcopy()是產(chǎn)生一個(gè)新的引用,這樣spam
和cheese
是兩個(gè)不同的引用所以在對(duì)spam
列表操作時(shí)不會(huì)對(duì)cheese列表產(chǎn)生影響。
到此這篇關(guān)于Python 中的 copy()和deepcopy()的文章就介紹到這了,更多相關(guān)Python copy()和deepcopy()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從Pytorch模型pth文件中讀取參數(shù)成numpy矩陣的操作
這篇文章主要介紹了從Pytorch模型pth文件中讀取參數(shù)成numpy矩陣的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03讓Python程序定時(shí)執(zhí)行的8種方法整理
在日常工作中,我們常常會(huì)用到需要周期性執(zhí)行的任務(wù),一種方式是采用?Linux?系統(tǒng)自帶的?crond?結(jié)合命令行實(shí)現(xiàn),另外一種方式是直接使用Python。本文整理了一下?Python?定時(shí)任務(wù)的實(shí)現(xiàn)方式,希望對(duì)大家有所幫助2023-01-01舉例區(qū)分Python中的淺復(fù)制與深復(fù)制
這篇文章主要介紹了舉例區(qū)分Python中的淺復(fù)制與深復(fù)制,是Python入門學(xué)習(xí)中的重要知識(shí),需要的朋友可以參考下2015-07-07Centos安裝python3與scapy模塊的問題及解決方法
這篇文章主要介紹了Centos安裝python3與scapy模塊的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Python中摘要算法MD5,SHA1簡(jiǎn)介及應(yīng)用實(shí)例代碼
這篇文章主要介紹了Python中摘要算法MD5,SHA1簡(jiǎn)介及應(yīng)用實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python學(xué)習(xí)之圖片濾鏡效果的實(shí)現(xiàn)
濾鏡效果是圖像處理中常用的一種技術(shù),可以用來增強(qiáng)圖像的視覺效果,實(shí)現(xiàn)不同的效果,本文就來利用Python中的Image模塊實(shí)現(xiàn)常見的幾個(gè)圖片濾鏡吧2023-05-05