Python 的 copy
库提供了浅拷贝和深拷贝功能,用于复制对象。浅拷贝只复制对象本身,而深拷贝则复制对象及其包含的所有子对象。这个库对于创建对象副本、避免共享可变对象带来的副作用非常有用。它在数据处理、对象克隆和备份时提供了灵活的操作,是处理对象复制时的重要工具。
a = [1,2,[3,4]]
b = a
print("直接赋值:")
print("a:",a)
print("b:",b)
print("第一次改变:")
a[1] = 666
print("a:",a)
print("b:",b)
print("第二次改变:")
a[2][0] = 777
print("a:",a)
print("b:",b)
输出:
直接赋值:
a: [1, 2, [3, 4]]
b: [1, 2, [3, 4]]
第一次改变:
a: [1, 666, [3, 4]]
b: [1, 666, [3, 4]]
第二次改变:
a: [1, 666, [777, 4]]
b: [1, 666, [777, 4]]
a = [1,2,[3,4]]
b = a.copy()
print("浅拷贝:")
print("a:",a)
print("b:",b)
print("第一次改变:")
a[1] = 666
print("a:",a)
print("b:",b)
print("第二次改变:")
a[2][0] = 777
print("a:",a)
print("b:",b)
输出:
浅拷贝:
a: [1, 2, [3, 4]]
b: [1, 2, [3, 4]]
第一次改变:
a: [1, 666, [3, 4]]
b: [1, 2, [3, 4]]
第二次改变:
a: [1, 666, [777, 4]]
b: [1, 2, [777, 4]]
import copy
a = [1,2,[3,4]]
b = copy.deepcopy(a)
print("深拷贝:")
print("a:",a)
print("b:",b)
print("第一次改变:")
a[1] = 666
print("a:",a)
print("b:",b)
print("第二次改变:")
a[2][0] = 777
print("a:",a)
print("b:",b)
输出:
深拷贝:
a: [1, 2, [3, 4]]
b: [1, 2, [3, 4]]
第一次改变:
a: [1, 666, [3, 4]]
b: [1, 2, [3, 4]]
第二次改变:
a: [1, 666, [777, 4]]
b: [1, 2, [3, 4]]