python中的深拷贝与浅拷贝

python中的深拷贝与浅拷贝

拷贝的几种方式

  1. 赋值引用
a = [1,2,3]
b = a
  1. copy模块
import copy
copy.copy()
copy.deepcopy()
  1. 切片操作
a = [1,2,3]
b = a[0:]

什么是深拷贝与浅拷贝

  1. 浅拷贝: 只是将新的变量指向被拷贝内容的地址,是地址的拷贝
  2. 深拷贝: 直接复制一份新的值在内存中拥有新的空间,然后将新变量指向新的空间地址

交互式命令行的验证

总结结论

  1. 直接复制引用是彻底的浅拷贝
  2. 使用 copy.copy() 和切片操作是 直接元素的深拷贝, 子对象元素的 浅拷贝
  3. copy.deepcopy() 是彻底的深拷贝
  4. 你也可以深层遍历手动拷贝来实现深拷贝…

你可能感兴趣的:(python)