Python中如何区分深拷贝与浅拷贝的区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3365个文字,预计阅读时间需要14分钟。
仅提供学习参考,转载请注明出处。+ 深拷贝、浅拷贝
1.浅拷贝
浅拷贝是对一个对象的顶层进行拷贝,意味着只复制对象的最外层属性,而不会复制对象内部引用的对象。通俗的理解是:复制了引用,但没有复制引用指向的内容。浅拷贝示意图:使用ipython3编写几个示例来看:pythonimport copy
原始列表original_list=[1, 2, [3, 4]]
浅拷贝shallow_copy_list=copy.copy(original_list)
修改原始列表中的一个内部列表original_list[2][0]=99
输出结果print(原始列表:, original_list)print(浅拷贝列表:, shallow_copy_list)
输出结果:原始列表: [1, 2, [99, 4]]浅拷贝列表: [1, 2, [99, 4]]
可以看到,修改原始列表中的一个内部列表后,浅拷贝列表中的对应内部列表也被修改了,这说明浅拷贝只是复制了引用,没有复制引用指向的内容。
本文共计3365个文字,预计阅读时间需要14分钟。
仅提供学习参考,转载请注明出处。+ 深拷贝、浅拷贝
1.浅拷贝
浅拷贝是对一个对象的顶层进行拷贝,意味着只复制对象的最外层属性,而不会复制对象内部引用的对象。通俗的理解是:复制了引用,但没有复制引用指向的内容。浅拷贝示意图:使用ipython3编写几个示例来看:pythonimport copy
原始列表original_list=[1, 2, [3, 4]]
浅拷贝shallow_copy_list=copy.copy(original_list)
修改原始列表中的一个内部列表original_list[2][0]=99
输出结果print(原始列表:, original_list)print(浅拷贝列表:, shallow_copy_list)
输出结果:原始列表: [1, 2, [99, 4]]浅拷贝列表: [1, 2, [99, 4]]
可以看到,修改原始列表中的一个内部列表后,浅拷贝列表中的对应内部列表也被修改了,这说明浅拷贝只是复制了引用,没有复制引用指向的内容。

