Advertisement

python3 shallow copy and deep copy 的区别及理解

阅读量:

Reference:
链接:https://www.jianshu.com/p/03dce38cc97e

首先,我们了解在Python3编程语言中,存在六种标准的数据类型,这些类型可进一步划分为不可更改与可更改两类。

不可更改的数据类型(共三种):

  • Number(数值型)
  • String(字符串型)
  • Tuple(元组型)

可更改的数据类型(共三种):

  • List(列表型)
  • Dictionary(字典型)
  • Set(集合型)

浅拷贝与深度拷贝对比分析

浅拷贝

copy模块中copy方法的实现方式

  • 1、针对**不可变类型** Number String Tuple,浅复制仅指向原有地址,不会生成新的存储空间。然而,**当值发生改变时,则会生成新的地址**
  • 2、对于**可变类型** List、Dictionary、Set,浅复制会在最顶层生成新的存储地址(但内部元素的地址仍保持一致),完成浅拷贝操作

**完成浅拷贝后:**

  • **若修改原始对象中属于可变类型的元素值,将同时影响到拷贝对象的内容;
  • `*若修改原始对象中属于不可变类型的元素值,则仅原始对象受到影响,拷贝对象内容保持不变。

全部评论 (0)

还没有任何评论哟~