python3下关于copy和deepcopy中的区别

如题所述

    我们日常所说的复制(自己在电脑硬盘上的复制)就是深复制(deepcopy),即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。 

    而浅复制(copy)并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签指向的数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-12
一、字典数据类型的copy函数,当简单的值替换的时候,原始字典和复制过来的字典之间互不影响,但是当添加,删除等修改操作的时候,两者之间会相互影响。
(1)值替换

[python] view plain copy
import copy
d = {
'name' : ['An','Assan']
}
c = d.copy()
dc = copy.deepcopy(d)
d['name'] = ['an']
print c
print d
print dc

结果如下:

[python] view plain copy
{'name': ['An', 'Assan']}
{'name': ['an']}
{'name': ['An', 'Assan']}本回答被提问者采纳