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]]]