普通赋值
普通赋值的实质是对象的引用,相当于建立了一个快捷方式,实际指向的还是同一个对象。
list1 = [1,2,3,[4,5,6]]
list2 = list1
list1[0] = 8
list1[3][2] = 9
print(list1)
print(list2)
结果:
浅拷贝
拷贝父对象,不会拷贝对象的内部的子对象。即列表指向的是不同的对象,但子列表指向的是同一个对象。
list1 = [1, 2, 3, [4, 5, 6]]
list2 = copy.copy(list1)
list1[0] = 8
list1[3][2] = 9
print(list1)
print(list2)
结果:
深拷贝
完全拷贝了父对象及其子对象,即列表跟子列表都指向不同的对象,两者完全独立。
list1 = [1, 2, 3, [4, 5, 6]]
list2 = copy.deepcopy(list1)
list1[0] = 8
list1[3][2] = 9
print(list1)
print(list2)
结果: