一、概念
完整拷贝需使用深拷贝
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均不受影响
三、执行效果