深淺拷貝

深淺拷貝的區別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))
#深拷貝時內存地址不同,字典中的全部元素所有拷貝一份

相關文章
相關標籤/搜索