深淺拷貝的區別python
# 分類
copy.copy #淺拷貝
copy.deepcopy() #深拷貝
= #賦值
#字符串、數字的深淺拷貝和賦值內存地址是不變。 a = 123 b = copy.copy(a) print(id(a)) print(id(b))
#元祖、列表、字典及其餘 a = {'k1':'v1','k2':12,'k3':[23,'22']} b = a print(id(a)) print(id(b)) >>>2384560090208 >>>2384560090208 #賦值時內存地址不變
a = {'k1':'v1','k2':12,'k3':[23,'22']} b = copy.copy(a) print(id(a)) print(id(b)) #淺拷貝時內存地址不同,只拷貝了第一層,列表中的元素仍是同一個
a = {'k1':'v1','k2':12,'k3':[23,'22']} b = copy.deepcopy(a) print(id(a)) print(id(b)) #深拷貝時內存地址不同,字典中的全部元素所有拷貝一份