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

    python深浅拷贝

    拷贝

    lt=[1,2,3]
    lt2=lt
    lt.append(4)
    print(lt)
    # 因为列表是可变类型,所以lt值变化,lt2的值也会跟着变化
    print(lt2)
    

    [1,2,3,4]

    [1,2,3,4]

    浅拷贝

    import copy
    lt=[1,2,3,[4,5,6]]
    lt2= copy.copy(lt)
    lt[3].append(7)
    print(lt)
    print(lt2)
    lt.append(4)
    print(lt)
    print(lt2)
    

    [1, 2, 3, [4, 5, 6, 7]]
    [1, 2, 3, [4, 5, 6, 7]]
    [1, 2, 3, [4, 5, 6, 7], 4]
    [1, 2, 3, [4, 5, 6, 7]]

    深拷贝

    import copy
    
    l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
    l2 = copy.deepcopy(l1)
    
    l1.append('g')
    
    print(l1)
    print(l2)
    

    ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
    ['a', 'b', 'c', ['d', 'e', 'f']]

    牢记:拷贝/浅拷贝/深拷贝 只针对可变数据类型

    三者的定义

    拷贝:当l2为l1的拷贝对象时,l1内的可变类型变化,lt2变化;l1内不可变类型变化,l2变化

    简单的赋值

    浅拷贝:当l2位l1的浅拷贝对象时,l1内的可变类型变化,l2变化;l1内的不可变类型变化,l2不变化

    copy.copy() 可变数据的类型中的内置方法.copy()

    深拷贝: 当l2为l1的深拷贝对象时,l1内的可变类型变化,l2不变化;l1内的不可变类型变化,l2不变化

    copy.deepcopy()

  • 相关阅读:
    数据库之ORACLE常见基础操作
    数据库基础之Oracle函数
    Snuketoon [ABC217H]
    Cards [CF1278F]
    Squirrel Migration [ARC087F]
    Xor Query [ABC223H]
    Three Permutations [ABC214G]
    雨林跳跃[APIO2021]
    Redis5.0 主从模式和高可用 搭建和测试报告
    Redis5 压力测试结果反馈报告
  • 原文地址:https://www.cnblogs.com/aden668/p/11311145.html
Copyright © 2011-2022 走看看