自学内容网 自学内容网

Python 深拷贝和浅拷贝

Python 深拷贝和浅拷贝

Python 深拷贝和浅拷贝

在Python中,对象赋值有深拷贝和浅拷贝之分。

  1. 浅拷贝(Shallow Copy):创建一个新的对象,但它包含的是对原始对象中包含项的引用,而不是副本。因此,如果你改变在原始对象中的项,那么也会在浅拷贝对象中看到这些改变。浅拷贝可以通过 copy() 方法或者使用 copy 模块的 copy() 函数来实现。
import copy

original = [1, 2, [3, 4]]
shallow_copy = copy.copy(original)

shallow_copy[2][0] = 'X'  # 修改浅拷贝中的元素
print(original)  # 输出:[1, 2, ['X', 4]],原始对象也被修改了
  1. 深拷贝(Deep Copy):创建一个新的对象,并且递归地复制它所包含的对象,即创建了对象中包含项的副本,而不仅仅是引用。因此,如果你改变在原始对象中的项,那么在深拷贝对象中不会看到这些改变。深拷贝可以通过 copy 模块的 deepcopy() 函数来实现。
import copy

original = [1, 2, [3, 4]]
deep_copy = copy.deepcopy(original)

deep_copy[2][0] = 'X'  # 修改深拷贝中的元素
print(original)  # 输出:[1, 2, [3, 4]],原始对象没有被修改

总结一下,浅拷贝只复制了最外围的对象,内部的元素都只是复制了一个引用而已。而深拷贝则是对外围和内部元素都进行了完全的复制,两者之间完全独立。


原文地址:https://blog.csdn.net/qq_41694461/article/details/136394520

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!