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

    1.浅拷贝

    copy.copy()

    浅拷贝是拷贝只拷贝最外一层(这里所说的拷贝是重新生成一个内存地址,也就是只有最外层的地址是重新生成)

    import copy
    li=[23,45,['wew',35,[33,00]]]
    li1=copy.copy(li)
    print(id(li),id(li1))
    print(id(li[0]),id(li1[0]))
    print(id(li[2][1]),id(li1[2][1]))
    #输出:35540704 5872576
    #     1625084720 1625084720
    #     1625084912 1625084912
    #可以看出只有li与li1的地址不同  他们的元素的地址是相同的         

    2.深拷贝

    copy.deepcopy()

    深拷贝是除了最里面一层的其他的都拷贝(最里面一层只拷贝值 不重新生成一个内存地址)

    import copy
    li=[23,[2,99],['wew',35,[33,0]]]
    li1=copy.deepcopy(li)
    print(li1)
    print(id(li),id(li1))
    print(id(li[2][2]),id(li1[2][2]))
    print(id(li[2][2][0]),id(li1[2][2][0]))
    #输出:[23, [2, 99], ['wew', 35, [33, 0]]] 7734816 7183296 7687104 7734936 1625084880 1625084880

    3.对于数字和字符串是完全拷贝

    import copy
    s1='wang'
    s2=copy.copy(s1)
    print(s2)
    print(id(s1),id(s2))
    #输出:wang
    #     4868256 4868256    
  • 相关阅读:
    HashTable介绍
    java源码 -- HashSet
    java源码 -- AbstractList
    java源码 -- AbstractSet
    java源码 -- AbstractCollection抽象类
    java源码 --List、Set、Collection
    第五篇:SpringBoot整合Mybatis
    java源码 -- AbstractMap
    算法
    根据前序遍历和中序遍历求后序遍历
  • 原文地址:https://www.cnblogs.com/wangbinbin/p/7078301.html
Copyright © 2011-2022 走看看