zoukankan      html  css  js  c++  java
  • 浅拷贝与深拷贝

    浅拷贝:不是完全新的对象(只拷贝的父对象,而不会拷贝里面的子对象,子对象仍然是原来对象的子对象)
    1:列表自身切片赋值
    2:导入copy模块,然后再copy.copy(listname)可浅拷贝,但嵌套列表的作用效果可以作用在浅拷贝上
    应用:改变列表中的嵌套列表可以用浅拷贝,而源列表中的子元素不改变,只是源列表中的嵌套列表随着源列表的改变而改变
    深拷贝:完全是一个新的对象(对父对象进行了拷贝,也对子对象进行了拷贝。是一个全新的对象了)
    copy.deepcopy(listname)

    # 浅拷贝
    
    import copy
    
    a = [1,2,3,4,5,6,[1,2,3,44]]
    b = a[:] # 切片赋值,这里的切片赋值为啥没受到源列表改变的影响,缘由切片赋值可以看成是浅拷贝
    c = copy.copy(a) # 浅拷贝
    d = copy.deepcopy(a) # 深拷贝
    e = a # 直接赋值,还是作用在同一个对象上
    # 修改原列表的值
    
    a[0] = 11
    a[-1][-1] = 16 # 嵌套列表的作用效果可以作用在浅拷贝上
    print(e,id(e))
    print(a,id(a))
    print(b,id(b))
    print(c,id(c))
    print(d,id(d))
    
    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    进程二
    高德地图api的使用
    《架构即未来》读后感3
    三周总结
    性能战术:
    二周总结
    《 架构即未来》读后感2
    一周总结
    《架构即未来》读后感
    学生信息系统dao层
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15076866.html
Copyright © 2011-2022 走看看