Python中如何区分深拷贝与浅拷贝的区别?

2026-05-24 12:250阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3365个文字,预计阅读时间需要14分钟。

Python中如何区分深拷贝与浅拷贝的区别?

仅提供学习参考,转载请注明出处。+ 深拷贝、浅拷贝

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分钟。

Python中如何区分深拷贝与浅拷贝的区别?

仅提供学习参考,转载请注明出处。+ 深拷贝、浅拷贝

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]]

可以看到,修改原始列表中的一个内部列表后,浅拷贝列表中的对应内部列表也被修改了,这说明浅拷贝只是复制了引用,没有复制引用指向的内容。

阅读全文