美文网首页Python
Python基础(42) - 浅拷贝和深拷贝

Python基础(42) - 浅拷贝和深拷贝

作者: xianling_he | 来源:发表于2020-03-12 19:16 被阅读0次

    两者的区别

    • copy: 浅拷贝,只复制深层对象的引用
    • deepcopy: 深拷贝,复制深层对象本身

    copy deepcopy 的使用

    • 代码如下:
    import copy
    
    a = [1,2,3,4,['a','b']]
    
    c = copy.copy(a) #浅拷贝
    
    d = copy.deepcopy(a) #深拷贝
    
    print(c)
    print(d)
    print('-'*20)
    
    a[4][0] = 'x'
    
    print(c)
    print(d)
    
    hexianling.png

    总结

    • a[4][0] = 'x' 将深层对象的 a元素替换成x ,如果使用浅拷贝(copy) 会将a的值改成x
    • 如果深拷贝(deepcopy) 是不会将改变的值作为输出,它拷贝的是深层的原来元素[a,b]
    • 所以深拷贝的话跟修改后的值无影响,deepcopy使用的还是原来的值
    • copy只复制深层对象的引用,而deepcopy会复制深层对象本身

    相关文章

      网友评论

        本文标题:Python基础(42) - 浅拷贝和深拷贝

        本文链接:https://www.haomeiwen.com/subject/mdbvjhtx.html