zoukankan      html  css  js  c++  java
  • 深浅拷贝(暂时)

    深浅拷贝

    0. 可变数据类型 '='

    共用一个地址,同生共死

    1 浅拷贝 (copy.copy/切片操作)

    1.1 对于可变数据类型(列表 字典)

    只自己创建了最外层结构 内层数据依旧是相同地址,相同可变数据类型依然同生共死

    import copy
    l = [1,2,[1,2]]
    l1 = l[:]
    l2 = copy.copy(l)
    print (id(l),id(l1),id(l2))
    ## 4349257224 4349277768 4349276744 各不相同
    print (id(l[-1]),id(l1[-1]),id(l2[-1]))
    ## 4357515912 4357515912 4357515912  第二层地址相同
    
    
    
    

    1.2 对于不可变数据类型 (数字,字符串,tuple)

    tuple夹杂可变数据类型,地址相同,一变多变

    深拷贝 (copy.deepcopy())

    深拷贝理论上来说怎么变也影响不了copyer的数据类型,不过为了节省内存空间,对于不可变数据类型,还是指向相同地址的,但是依旧可以看成没有影响,因为即使可变数据类型相同地址,改变其一也相当于指向新的地址,对之前的数据没有影响

    由浅到深 最外层 内层
    '=' 地址相同 地址相同
    浅拷贝 地址不同 地址相同
    深拷贝 地址不同 地址不同

    地址相同的可变数据类型:一变多变

    另附图解

    题解

  • 相关阅读:
    mongodb.open失效导致访问地址404
    使用Express创建一个简单的示例
    CommonJs的模块规范
    javascript递归
    python入门简书2
    Python入门小白
    场景图层介绍
    在三维地图上改变相机的左右和上下视图
    显示/隐藏地面高程
    给要素图层添加信息窗口
  • 原文地址:https://www.cnblogs.com/albert0823/p/10971091.html
Copyright © 2011-2022 走看看