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']]
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']]
相关文章推荐
- Python---copy()、deepcopy()与赋值的区别
- 从python中copy与deepcopy的区别看python引用
- Python里的拷贝【引用和copy(),deepcopy()的区别】
- Python copy与deepcopy的区别
- Python-copy()与deepcopy()区别
- Python中deepcopy 和copy的区别
- Python中 copy, deepcopy 的区别
- Python字典方法copy()和deepcopy()的区别
- python的copy和deepcopy的区别
- 从python中copy与deepcopy的区别看python引用
- 01-Python-copy()与deepcopy()区别
- Python中的引用,copy和deepcopy的区别
- 【Python】copy()与deepcopy()的区别
- 从python中copy与deepcopy的区别看python引用
- 从python中copy与deepcopy的区别看python引用
- Python中copy()和deepcopy()的区别
- Python copy()与deepcopy()区别,深拷贝与浅拷贝
- Python-copy()与deepcopy()区别
- python中copy()与deepcopy()的区别小结
- Python中copy和deepcopy的区别,以及编程实现deepcopy的功能