Python中的引用與copy介紹
Python中的引用和copy
1、引用整型數(shù)據(jù)及列表
這里以整型數(shù)據(jù)類型及列表為例
對(duì)于賦值字符串
、整型
、元組等不可更改數(shù)據(jù)
的變量,其保存的僅是值,改變新變量中的值并不會(huì)影響原來變量中的值
origin = 1 new = origin print("new = ",new) new = 2 print("origin = ",origin)
輸出結(jié)果:
如果將列表或者字典
賦值給一個(gè)變量,(這里以列表為例)則變量所保存的并不是一個(gè)列表,而是原列表的引用,相當(dāng)于一個(gè)通向列表的通道,指向原列表(感覺類似于C語言中的指針)
origin = [1,2,3] new = origin print("new = ",new) new[0] = 0 print("origin = ",origin)
輸出結(jié)果:
如上述示例程序,改變新變量對(duì)應(yīng)列表元素的值,原變量中列表元素的值相應(yīng)也改變了,這說明這兩個(gè)變量指向同一個(gè)列表,保存的是該列表的引用
。
2、傳遞引用
作為傳遞給函數(shù)變量,其包含的值同樣為列表的引用。
def expand(transmit): transmit.append('haha') list = [1,2,3] expand(list) print(list)
輸出結(jié)果:
3、copy模塊中的copy()和deepcopy()
copy.copy()
函數(shù)可以用來復(fù)制列表或字典這樣的可變值,復(fù)制后的列表與原列表為兩個(gè)獨(dú)立的列表
import copy origin = [1,2,3] new = copy.copy(origin) new[0] = 0 print("origin = ",origin) print("new = ",new)
如果所需要復(fù)制的列表中套有列表,則使用deepcopy()
函數(shù)將其完整復(fù)制
import copy origin =[[1,2,3],['a','b','c']] new = copy.deepcopy(origin) #使用深copy new[0][0] = 0 print("origin = ",origin) print("new = ",new)
輸出結(jié)果:
注意:如果在嵌套列表的情況下使用copy.copy(),則無法將內(nèi)部列表復(fù)制出來
import copy origin =[[1,2,3],['a','b','c']] new = copy.copy(origin) #使用淺copy new[0][0] = 0 print("origin = ",origin) print("new = ",new)
輸出結(jié)果:
到此這篇關(guān)于Python中的引用與copy介紹的文章就介紹到這了,更多相關(guān)Python中的引用和copy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實(shí)現(xiàn)智能停車場車牌識(shí)別計(jì)費(fèi)系統(tǒng)
這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)一個(gè)智能停車場車牌識(shí)別計(jì)費(fèi)系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-04-04Python實(shí)現(xiàn)矩陣相乘的三種方法小結(jié)
今天小編就為大家分享一篇Python實(shí)現(xiàn)矩陣相乘的三種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07利用Python如何批量修改數(shù)據(jù)庫執(zhí)行Sql文件
這篇文章主要給大家介紹了關(guān)于利用Python如何批量修改數(shù)據(jù)庫執(zhí)行Sql文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07Python 玩轉(zhuǎn)圖像格式轉(zhuǎn)換操作
這篇文章主要介紹了Python 玩轉(zhuǎn)圖像格式轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03200行python代碼實(shí)現(xiàn)2048游戲
這篇文章主要為大家詳細(xì)介紹了200行Python代碼實(shí)現(xiàn)2048游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07pytorch載入預(yù)訓(xùn)練模型后,實(shí)現(xiàn)訓(xùn)練指定層
今天小編就為大家分享一篇pytorch載入預(yù)訓(xùn)練模型后,實(shí)現(xiàn)訓(xùn)練指定層,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python使用asyncio實(shí)現(xiàn)異步操作的示例
本文主要介紹了Python使用asyncio實(shí)現(xiàn)異步操作的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01Python爬取肯德基官網(wǎng)ajax的post請求實(shí)現(xiàn)過程
這篇文章主要介紹了Python爬取肯德基官網(wǎng)ajax的post請求實(shí)現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家學(xué)有所得,多多進(jìn)步2021-10-10