Python 深拷贝和浅拷贝
Python 深拷贝和浅拷贝
Python 深拷贝和浅拷贝
在Python中,对象赋值有深拷贝和浅拷贝之分。
- 浅拷贝(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]],原始对象也被修改了
- 深拷贝(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)!