深浅拷贝

深浅拷贝的区别

# 分类
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))
#深拷贝时内存地址不一样,字典中的所有元素全部拷贝一份

 

posted @ 2017-12-21 17:07  jacky_zhao  阅读(114)  评论(0编辑  收藏  举报