小能豆

Python 中的深拷贝(deep copy)和浅拷贝(shallow copy)有什么区别?

py

Python 中的深拷贝(deep copy)和浅拷贝(shallow copy)有什么区别?


阅读 28

收藏
2024-11-06

共1个答案

小能豆

  • 浅拷贝

:对于对象的拷贝,创建一个新的对象,但对其中的可变元素(如列表、字典等)不会进行递归拷贝,而是引用原始对象中的可变元素。

  • 可以使用 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]]
2024-11-06