您的位置:首页 > 编程语言 > Python开发

python 中copy和deepcopy的区别

2018-02-25 21:26 309 查看
初始:
import copy
origin=[1,2,3,['a','b']]
cop1=copy.copy(origin)
cop2=copy.deepcopy(origin)

此时cop1和cop2虽然相等但是不相同

copy是创建一个对象,每一个子对象都是对源子对象的引用。
copy拷贝一个对象,但是对象的属性还是引用原来的(对复杂对象的子对象),deepcopy拷贝一个对象,把对象里面的属性也做了拷贝,deepcopy之后完全是另一个对象.
for example:
cop1[3].append('c')
可以看成是对子对象的属性的一种更改,等同于origin[3].append('c')
但是对origin其他子对象如果只是简单的修改,则cop1不变
for exanple:
>>>origin[0]=2
>>>origin
>>>[2,2,3,['a','b','c']]
>>>cop1
>>>[1,2,3,['a','b','c']]

deepcopy成为另一个列表,更改不影响其他列表
>>>cop2
>>>[1,2,3,['a','b']]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: