一、概念

完整拷贝需使用深拷贝

​1.1.深拷贝​

拷贝所有对象,包括顶级对象及嵌套对象,相当于完整复制一份,与原始数据没有关系

​1.2.浅拷贝​

只拷贝顶级对象,不拷贝嵌套对象,因此原始数据的嵌套数据改变时,会跟着改变

二、代码

import copy
a = [1, 2, [3, 4]]
b = copy.copy(a) # 浅拷贝,当原始数据的嵌套数据改变时,会跟着改变
c = copy.deepcopy(a) # 深拷贝,完整复制一份,与原数据没有任何关系
a[2].append(5)
a.append(6)
print(a)
print(b)
print(c)

b是浅拷贝,当a列表的[3,4]追加元素5时,b列表会跟着变化,而深拷贝的c列表不受影响

a列表的顶级对象追加元素6,b和c均不受影响

三、执行效果

详解Python之深浅copy_python