来源于https://www.cnblogs.com/fandx/p/10462913.html
不管深拷贝还是浅拷贝对不可变数据类型都是引用内存地址
不管深拷贝还是浅拷贝对可变数据类型都是会重新创建新的内存空间
浅拷贝
- b=a.copy()
- b=a[:]
- b=copy.copy(a)
浅拷贝只做最顶层的数据类型判断
如果顶层是可变类型则创建新的内存空间
如果顶层是不可变数据类型就是引用拷贝
深拷贝
- b=copy.deepcopy(a)
深拷贝做递归拷贝,可以递归拷贝所有的内部嵌套数据(可以理解为循环遍历做浅拷贝判断)
深拷贝递归拷贝遇到可变类型则创建新的内存空间
深拷贝递归拷贝遇到不可变数据类型就是拷贝的引用
可变数据类型
Number, String, Turple
不可变数据类型
List, Dictionary, Set