Python中的赋值与浅复制与深复制之间

发布时间:2019-04-22 22:05:05编辑:auto阅读(1834)

    #赋值与浅复制一层列表

    """
    a = [1, 2]   
    b = a   #赋值
    c = a.copy() #浅复制
    a.append(3)    
    print(b)  #父对象改变
    print(c)  #父对象不变
    '''
    [1, 2, 3]
    [1, 2]
    '''
    """

    #赋值与浅复制二层列表

    """
    a = [1,2,[1,2]]   
    b = a #赋值
    c = a.copy() #浅复制
    a[-1].append(3)
    a.append(3)
    print(b)  #父对象该变 赋值
    print(c)  #父对象该变 浅复制
    '''
    [1, 2, [1, 2, 3], 3]
    [1, 2, [1, 2, 3]]
    '''
    """

    #浅复制与深复制一层列表

    """
    import copy
    a = [1, 2]
    b = copy.copy(a) #浅复制
    c = copy.deepcopy(a) #深复制
    a.append(3)
    print(b)  #父对象不变 浅复制
    print(c)  #父对象不变 深复制
    '''
    [1, 2]
    [1, 2]
    '''
    """

    #浅复制与深复制二层列表

    """
    a = [1,2,[1,2]]   
    b = copy.copy(a) #浅复制
    c = copy.deepcopy(a) #深复制
    a[-1].append(3)
    print(b)    #父对象该变 浅复制
    print(c)    #父对象不变 深复制
    '''
    [1, 2, [1, 2, 3]]
    [1, 2, [1, 2]]
    '''
    """

    #一层列表中,赋值会改变父对象 ,浅复制和深复制不会改变父对象。
    #二层列表中,赋值会改变父对象(内外都变),浅复制会改变内层父对象,深复制不会改变内层父对象。

     

关键字