zoukankan      html  css  js  c++  java
  • Python中=、copy、deepcopy

    一、Python中的“=”

    a = 1
    b = 1
    c = a
    print(id(a))
    print(id(b))
    print(id(c))
    
    #输出为
    140707841037344
    140707841037344
    140707841037344
    

    上面代码中创建常量1,a、b和c都指向1,当没有变量指向1,释放常量1内存。

    二、Python中copy

    import copy
    
    a = [1,2,3]
    b = copy.copy(a)
    print(id(a))
    print(id(b))
    
    #输出为
    2075181435016
    2075181315464
    

    上述代码中copy会开劈新的内存来存储list地址,但不会开辟内存存储list中的值。

    三、Python中deepcopy

    import copy
    
    a = [1,2,3,[4,5,6]]
    b = copy.deepcopy(a)
    c = copy.copy(a)
    
    print(id(a[3]))
    print(id(b[3]))
    print(id(c[3]))
    
    #输出为
    2043580692680
    2043580693000
    2043580692680
    

    上述copy会开辟新的内存来存储list地址,但不会开辟内存存储list中的值。
    deepcopy会开辟新的内存来存储list地址,但也会递归开辟内存存储list中的值。

  • 相关阅读:
    杂记
    [POI2015]PUS
    CF786B Legacy(线段树优化建图)
    SP11470 TTM
    [WC2010]重建计划
    [HNOI2014]世界树
    luogu P4842 城市旅行
    [SDOI2016]征途
    [APIO2014]序列分割
    上下界网络流构图证明
  • 原文地址:https://www.cnblogs.com/narjaja/p/9442975.html
Copyright © 2011-2022 走看看