美文网首页
Day5 深拷贝和浅拷贝

Day5 深拷贝和浅拷贝

作者: ququququ | 来源:发表于2019-02-23 09:40 被阅读0次

    python的复制,深拷贝和浅拷贝

    在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而是拷贝了这个对象的引用。

    1、直接赋值

    a = [1,2,3,["a","b"]]
    b = a
    b.append(100)
    print(a, b)
    

    说明:默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变

    直接赋值.jpg

    2、浅拷贝

    import copy
    a=[1,2,3,["a","b"]]
    c =copy.copy(a)
    a.append(100)
    a[3].append(666)
    print(a,c)
    

    说明:没有拷贝子对象,所以原始数据改变,子对象会改变。

    浅拷贝.jpg

    3、深拷贝

    import copy
    a=[1,2,3,["a","b"]]
    c =copy.deepcopy(a)
    a.append(100)
    a[3].append(666)
    print(a,c)
    

    说明:包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变

    深拷贝.jpg

    相关文章

      网友评论

          本文标题:Day5 深拷贝和浅拷贝

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