美文网首页
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