Python 中的深拷贝(deep copy)和浅拷贝(shallow copy)有什么区别?
:对于对象的拷贝,创建一个新的对象,但对其中的可变元素(如列表、字典等)不会进行递归拷贝,而是引用原始对象中的可变元素。
可以使用 copy() 或 copy.copy() 创建浅拷贝。
copy()
copy.copy()
深拷贝
:会递归地复制对象及其包含的所有对象,创建一个完全独立的新对象。
copy.deepcopy()
示例:
import copy a = [1, 2, [3, 4]] b = copy.copy(a) # 浅拷贝 c = copy.deepcopy(a) # 深拷贝 a[2][0] = 99 print(b) # 浅拷贝会受到影响 [[99, 4]] print(c) # 深拷贝不会受影响 [[3, 4]]