zoukankan      html  css  js  c++  java
  • Day7 数据类型转化 + 深浅copy

    一。数据类型的转化

    int     ——    bool

    bool  ——  int

    int  ——  str

    str ——  int

    str —— bool

    bool —— str

    tuple —— str

    str不能转化成tuple

     

    深浅copy

    1,先看赋值运算。

    复制代码
    l1 = [1,2,3,['barry','alex']]
    l2 = l1
    
    l1[0] = 111
    print(l1)  # [111, 2, 3, ['barry', 'alex']]
    print(l2)  # [111, 2, 3, ['barry', 'alex']]
    
    l1[3][0] = 'wusir'
    print(l1)  # [111, 2, 3, ['wusir', 'alex']]
    print(l2)  # [111, 2, 3, ['wusir', 'alex']]
    复制代码

    对于赋值运算来说,l1与l2指向的是同一个内存地址,所以他们是完全一样的。

    2,浅拷贝copy。

    复制代码
    l1 = [1,2,3,['barry','alex']]
    
    l2 = l1.copy() print(l1,id(l1)) # [1, 2, 3, ['barry', 'alex']] 2380296895816 print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2380296895048
    l1[1] = 222
    print(l1,id(l1)) # [1, 222, 3, ['barry', 'alex']] 2593038941128
    print(l2,id(l2)) # [1, 2, 3, ['barry', 'alex']] 2593038941896
     
    l1[3][0] = 'wusir' print(l1,id(l1[3])) # [1, 2, 3, ['wusir', 'alex']] 1732315659016 print(l2,id(l2[3])) # [1, 2, 3, ['wusir', 'alex']] 1732315659016
    复制代码

    对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。

    3,深拷贝deepcopy。

    复制代码
    import copy
    l1 = [1,2,3,['barry','alex']]
    l2 = copy.deepcopy(l1)
    
    print(l1,id(l1))  # [1, 2, 3, ['barry', 'alex']] 2915377167816
    print(l2,id(l2))  # [1, 2, 3, ['barry', 'alex']] 2915377167048
    
    l1[1] = 222
    print(l1,id(l1))  # [1, 222, 3, ['barry', 'alex']] 2915377167816
    print(l2,id(l2))  # [1, 2, 3, ['barry', 'alex']] 2915377167048
    
    l1[3][0] = 'wusir'
    print(l1,id(l1[3]))  # [1, 222, 3, ['wusir', 'alex']] 2915377167240
    print(l2,id(l2[3]))  # [1, 2, 3, ['barry', 'alex']] 2915377167304
    复制代码

    对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。

    小结:

    赋值运算:既不是深copy也不是浅copy
    
    浅拷贝
    
      只拷贝第一层,内层与与原数据类型公用一个内层(切片是浅拷贝)
    
    深拷贝
    
      从里到位全部拷贝,与原数据无关

      

  • 相关阅读:
    HDU 5842 Lweb and String 【乱搞】
    POJ 2342 Anniversary party 【树形DP】
    [ZJOI2008]树的统计Count 【树链剖分】
    UVA 136 & POJ1338 Ugly Numbers
    ccf 201803-2
    ccf 201809-5
    ccf 201809-4
    ccf 201809-2
    ccf 201809-1
    最小费用可行流
  • 原文地址:https://www.cnblogs.com/zsdbk/p/8654044.html
Copyright © 2011-2022 走看看