python-模块-copy-深拷贝与浅拷贝

什么是浅拷贝
1、copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。

2、copy.deepcopy 深拷贝 拷贝对象及其子对象

import copy
a=[1,2,3,4,[4,5,6]]
b=copy.copy(a)

print(a)
print(b)

b[4][0]=5
print(a)
print(b)

b[1]=0
print(a)
print(b)

运行结果

[1, 2, 3, 4, [4, 5, 6]]
[1, 2, 3, 4, [4, 5, 6]]
b相对于a是浅拷贝,所以a与b打印结果是一样的

[1, 2, 3, 4, [5, 5, 6]]
[1, 2, 3, 4, [5, 5, 6]]
b相对于a并没有拷贝子数组,当b改变子数组时,a的子数组也会改变

[1, 2, 3, 4, [5, 5, 6]]
[1, 0, 3, 4, [5, 5, 6]]
改变数组时,两个数组时,打印结果是不一样的

什么是深拷贝呢?
实际上,我们就可以看做他们复制后,就是一个新的文件了,就相当于我们比如说,复制一份word文档, 复制之后就相当于两份文档了,其之间也就没有什么关系了。 即使一个被修改的化 另一个也不会被修改了

python-模块-copy-深拷贝与浅拷贝