python:深拷贝与浅拷贝问题

浅拷贝:

例如,现在有一个A = 2,而2就保存在下面黄色这个地址里面:

python中直接用B=A的话,就是浅拷贝操作,代码如下

A = 1
B = A
B = 2
print("A")#A = 2
print("B")#B = 2

创建B=A时,相当于,如下操作:

在原来的黄色地址上,又添加了一个索引B,所以A、B都是指向同一个地址,修改B的值,相当于修改B指向的地址的值,所以A 就跟着也被修改了

深拷贝:

而python中的深拷贝:代码如下

B = A.copy()

深拷贝操作就是用一个新的蓝色地址,去复制A所在的黄色地址的内容,再给蓝色的地址添加一个索引B

所以修改B的值相当于修改蓝色地址的值,并不会影响黄色地址的内容

A = 1
B = A.copy()
B = 2
print("A")#A = 1
print("B")#B = 2

猜你喜欢

转载自blog.csdn.net/weixin_53374931/article/details/129702240