python3-列表的深浅复制

发布时间:2019-09-22 07:54:50编辑:auto阅读(1631)

    # Auther: Aaron Fan

    names = ["aaron", "alex", "james", "meihengfan"]

    #复制一份列表

    #浅复制 (注意,这只是一个浅复制,只能复制第一层列表里面的东西,如果列表里面还有一层列表,那么那一层的列表只是把物理地址指向过去了,但是并没有复制过来)
    #day29个视频,有详细讲这个浅复制的作用,这里不再详细注释

    person = ["name", ["saving", 100]]

    '''
    浅复制的方法有3种:
    p1 = person.copy()
    p1 = person[:]
    p1 = list(person)
    '''

    p1 = person[:]
    p2 = person[:]
    print(p1)
    print(p2)


    p1[0] = "alex"
    p2[0] = "fengjie"
    print(p1)
    print(p2)

    #注意第二层列别中的值同时变了,这里联合账号来理解浅复制的作用
    p1[1][1] = 50
    print(p1)
    print(p2)


    #深复制(这种复制属于完完全全的复制,可以把列表里面的列表也复制过来,而不是仅仅只是指向一个地址过去)
    import copy
    names2 = copy.deepcopy(names)


关键字