目錄
- Python中的引用和copy
- 1、引用整型數據及列表
- 2、傳遞引用
- 3、copy模塊中的copy()和deepcopy()
Python中的引用和copy
1、引用整型數據及列表
這里以整型數據類型及列表為例
對于賦值字符串
、整型
、元組等不可更改數據
的變量,其保存的僅是值,改變新變量中的值并不會影響原來變量中的值
origin = 1
new = origin
print("new = ",new)
new = 2
print("origin = ",origin)
輸出結果:
如果將列表或者字典
賦值給一個變量,(這里以列表為例)則變量所保存的并不是一個列表,而是原列表的引用,相當于一個通向列表的通道,指向原列表(感覺類似于C語言中的指針)
origin = [1,2,3]
new = origin
print("new = ",new)
new[0] = 0
print("origin = ",origin)
輸出結果:
如上述示例程序,改變新變量對應列表元素的值,原變量中列表元素的值相應也改變了,這說明這兩個變量指向同一個列表,保存的是該列表的引用
。
2、傳遞引用
作為傳遞給函數變量,其包含的值同樣為列表的引用。
def expand(transmit):
transmit.append('haha')
list = [1,2,3]
expand(list)
print(list)
輸出結果:
3、copy模塊中的copy()和deepcopy()
copy.copy()
函數可以用來復制列表或字典這樣的可變值,復制后的列表與原列表為兩個獨立的列表
import copy
origin = [1,2,3]
new = copy.copy(origin)
new[0] = 0
print("origin = ",origin)
print("new = ",new)

如果所需要復制的列表中套有列表,則使用deepcopy()
函數將其完整復制
import copy
origin =[[1,2,3],['a','b','c']]
new = copy.deepcopy(origin) #使用深copy
new[0][0] = 0
print("origin = ",origin)
print("new = ",new)
輸出結果:
注意:如果在嵌套列表的情況下使用copy.copy(),則無法將內部列表復制出來
import copy
origin =[[1,2,3],['a','b','c']]
new = copy.copy(origin) #使用淺copy
new[0][0] = 0
print("origin = ",origin)
print("new = ",new)
輸出結果:

到此這篇關于Python中的引用與copy介紹的文章就介紹到這了,更多相關Python中的引用和copy內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python中的引用與copy介紹
- 簡單了解Python字典copy與賦值的區別
- 圖解Python中深淺copy(通俗易懂)
- python利用os模塊編寫文件復制功能——copy()函數用法
- Python的對象傳遞與Copy函數使用詳解
- python深copy和淺copy區別對比解析
- python進程池實現的多進程文件夾copy器完整示例
- python多線程案例之多任務copy文件完整實例
- python3 深淺copy對比詳解