list_赋值/浅拷贝/深度拷贝

 

/*
一: 类比
二: 赋值
三: 浅拷贝
四: 深拷贝
*/

 

一: 类比

 

 

二: 赋值

if __name__ == '__main__':
    s1 = [1, 4, 9, 16, 25, [11, 22]]
    s2 = s1

    print("s1: 0x%x" % id(s1), s1)  # s1: 0x1fc3fb77240 [1, 4, 9, 16, 25, [11, 22]]
    print("s2: 0x%x" % id(s2), s2)  # s2: 0x1fc3fb77240 [1, 4, 9, 16, 25, [11, 22]]

    s2[0] = 6
    s2.append(666)
    s2[5].append(33)
    s2.append([1, [123]])

    print("s1: 0x%x" % id(s1), s1)  # s1: 0x1fc3fb77240 [6, 4, 9, 16, 25, [11, 22, 33], 666, [1, [123]]]
    print("s2: 0x%x" % id(s2), s2)  # s2: 0x1fc3fb77240 [6, 4, 9, 16, 25, [11, 22, 33], 666, [1, [123]]]

 

 

三: 浅拷贝

if __name__ == '__main__':
    s1 = [1, 4, 9, 16, 25, [11, 22]]
    s2 = s1[:]

    print("s1: 0x%x" % id(s1), s1)  # s1: 0x1bc11bbc200 [1, 4, 9, 16, 25, [11, 22]]
    print("s2: 0x%x" % id(s2), s2)  # s2: 0x1bc11be7e00 [1, 4, 9, 16, 25, [11, 22]]

    s2[0] = 6
    s2.append(666)
    s2[5].append(33)
    s2.append([1, [123]])

    print("s1: 0x%x" % id(s1), s1)  # s1: 0x1bc11bbc200 [1, 4, 9, 16, 25, [11, 22, 33]]
    print("s2: 0x%x" % id(s2), s2)  # s2: 0x1bc11be7e00 [6, 4, 9, 16, 25, [11, 22, 33], 666, [1, [123]]]

 

 

四: 深拷贝

if __name__ == '__main__':
    s1 = [1, 4, 9, 16, 25, [11, 22]]
    s2 = copy.deepcopy(s1)

    print("s1: 0x%x" % id(s1), s1)  # s1: 0x1f2a4196a80 [1, 4, 9, 16, 25, [11, 22]]
    print("s2: 0x%x" % id(s2), s2)  # s2: 0x1f2a41d2680 [1, 4, 9, 16, 25, [11, 22]]

    s2[0] = 6
    s2.append(666)
    s2[5].append(33)
    s2.append([1, [123]])

    print("s1: 0x%x" % id(s1), s1)  # s1: 0x1f2a4196a80 [1, 4, 9, 16, 25, [11, 22]]
    print("s2: 0x%x" % id(s2), s2)  # s2: 0x1f2a41d2680 [6, 4, 9, 16, 25, [11, 22, 33], 666, [1, [123]]]

 

posted @ 2023-06-01 04:18  火焰马  阅读(20)  评论(0编辑  收藏  举报