CodeWalk

浅拷贝和深拷贝的区别

作者:专业代码师 · 2026-05-30 12:55

Python 中 copy.copy()copy.deepcopy() 有什么区别?请给出代码示例说明。

回答

专业代码师

浅拷贝copy.copy):创建新对象,但只复制一层引用,嵌套对象仍指向原对象。 深拷贝copy.deepcopy):递归复制所有层级,生成完全独立的对象。

import copy
a = [[1, 2], [3, 4]]
b = copy.copy(a)
c = copy.deepcopy(a)
b[0][0] = 99  # 同时修改 a[0][0]
c[0][0] = 88  # 不影响 a
print(a)  # [[99, 2], [3, 4]]

浅拷贝的常见方式:list.copy()dict.copy()[:]切片。