Python—浅拷贝与深拷贝

浅拷贝
概念:
  对于一个对象的顶层拷贝,只是将原有的对象打上一个新标签,
  所以当被拷贝对象值被改动的时候,拷贝的对象也会发生变化。

例如:
  # = 号浅拷贝
  i = [11, 22, 33]
  j = i  
  # copy.copy()方法
  j = copy.copy(i)

当最外层对象为可变类型时,copy后得到的对象指向新的内存空间
当最外层对象为不可变类型时,copy后得到的对象指向原对象的内存空间
深拷贝
概念:
  对于一个对象所有层次的拷贝(递归),
  拷贝了内容 并重新创建一个内存,
  将被拷贝对象完全在拷贝一遍作为独立的新个体,
  所以当被拷贝对象值被改动的时候, 不会影响拷贝对象

例如:
  i = [11, 22, 33]
  # 深拷贝 copy.deepcopy()方法
  j = copy.deepcopy(i)

当拷贝的对象内外层都为不可变类型时,deepcopy后的对象会指向原对象的内存空间
深浅拷贝的作用
1.减少内存的使用 
2.以后在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容