1. 程式人生 > >python中的淺拷貝與深拷貝

python中的淺拷貝與深拷貝

post 相同 pre body python and aos deep light

淺拷貝可以拿丈夫與媳婦公用一張銀行卡來舉例  
# python >>> husband = [‘liang‘,123,[10000,6000]] #丈夫的銀行卡信息(姓名,id,額度,余額) >>> wife = husband.copy() #媳婦和丈夫公用一張銀行卡(姓名與id不同,但是額度與余額相同) >>> wife[0] = ‘yue‘ >>> wife[1] = 456 >>> wife[2][1] -= 3000 #媳婦花費3000 >>> wife [‘yue‘, 456, [10000, 3000]] #顯示媳婦余額 >>> husband [‘liang‘, 123, [10000, 3000]] #顯示丈夫余額

  

淺拷貝只是拷貝第一層,深拷貝相當於克隆,深拷貝如下:

引入了小三,小三花費的錢媳婦不知道:

>>> liang = [‘xin‘,111,[15000,10000]]
>>> yue = liang.copy()
>>> yue
[‘xin‘, 111, [15000, 10000]]
>>> yue[0] = ‘mumu‘
>>> yue[1] = 222
>>> yue[2][1] -= 5000
>>> yue
[‘mumu‘, 222, [15000, 5000]]
>>> liang
[‘xin‘, 111, [15000, 5000]]
以上是淺拷貝;

以下是深拷貝:
>>> import copy
>>> xiaosan = copy.deepcopy(liang)
>>> xiaosan[0] ="**"
>>> xiaosan[1] = 333
>>> xiaosan[2][1] -= 1999
>>> xiaosan
[‘**‘, 333, [15000, 3001]]            #已經減少啦
>>> liang
[‘xin‘, 111, [15000, 5000]]
>>> yue
[‘mumu‘, 222, [15000, 5000]]       #媳婦不知道

  

python中的淺拷貝與深拷貝