深拷贝与浅拷贝
2020-05-18 本文已影响0人
RayRaymond
-
元祖无copy
-
浅拷贝:
相当于新建一个副本到新的地址里面,里面各个对象和各个源共用一个地址,修改副本里面的内容 不改变原对象- 在原对象中修改 会映射到副本中
- 对于内部可变类型对象,公用一个地址,内容改变,地址不变,所以会映射到其他
- 对于内部不可变类型对象: 公用一个地址,内容改变,地址也改变 所以不会映射到其他
-
深拷贝
import copy copy.deepcopy() list1=[1,2,4,5,6,7] list2=copy.deepcopy(list1)
- 不可变类型:
公用一个地址,内容改变 地址也改变 所以不会映射到其他 - 可变类型:
重新开辟空间新的地址,内容改变地址不变,所以不会映射到其
- 不可变类型:
-
直接赋值
=
引用
b = a #赋值,传对象的引用
所有改动都会映射到另一对象
>>> a = [1,2,3]
>>> b = a
>>> b.append(1)
>>> b
[1, 2, 3, 1]
>>> a
[1, 2, 3, 1]