美文网首页
Python—浅拷贝与深拷贝

Python—浅拷贝与深拷贝

作者: LionKing_ | 来源:发表于2018-11-08 16:52 被阅读0次
浅拷贝
概念:
  对于一个对象的顶层拷贝,只是将原有的对象打上一个新标签,
  所以当被拷贝对象值被改动的时候,拷贝的对象也会发生变化。

例如:
  # = 号浅拷贝
  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.以后在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据。

相关文章

网友评论

      本文标题:Python—浅拷贝与深拷贝

      本文链接:https://www.haomeiwen.com/subject/odiwxqtx.html