1. 程式人生 > >深淺拷貝

深淺拷貝

tro import deepcopy nbsp imp 內存 ges ima p s

#import copy
#淺拷貝

#copy.copy()

#深拷貝
#copy.deepcopy()

#賦值
#=
#字符串和數字、copy在內存裏用的是同一地址
#對於 數字 和 字符串 而言,賦值、淺拷貝和深拷貝無意義,因為其永遠指向同一個內存地址。
import
copy #字符串、數字 #a1 = 123123 #a2 = 123123 #a2 = a1 #print(id(a1)) #print(id(a2)) a1 = sadasdasdasdasd a3 =copy.deepcopy(a1) print(id(a1)) print(id(a3))
技術分享



import
copy #其它、元組、列表、字典...... n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]} #賦值(id 一樣) #n2 = n1 #print(id(n1)) #print(id(n2))
技術分享

#淺拷貝(id 不一樣) n3 = copy.copy(n1) print(id(n1)) print(id(n3))
技術分享

#id一樣
print(id(n1[k3]))
print(id(n3[k3]))

深拷貝,在內存中將所有的數據重新創建一份(排除最後一層,即:python內部對字符串和數字的優化)

技術分享

import
copy #其它、元組、列表、字典...... n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]} #賦值(id 一樣) #n2 = n1 #print(id(n1)) #print(id(n2)) #淺拷貝(id 不一樣) #n3 = copy.copy(n1) n3 = copy.deepcopy(n1) print(id(n1)) print(id(n3)) #id一樣 print(id(n1[k3])) print(id(n3[k3]))

輸出:

35099032
35099272
35583160
35535848



深淺拷貝