一 直接赋值
1 a = [1,2,3] 2 b = a 3 b[0] = 2 4 print(a) 5 print(b)
输出:
[2, 2, 3]
[2, 2, 3]
像上面直接赋值, a为可变型变量,b=a相当于b是a的别名,b和a指向相同的地址;改变b中的值,相应的a的值也会改变。
二 浅拷贝 :copy()
1 a = [[1,2],3,4] 2 b = a.copy() 3 b[1] = 2 4 print(a) 5 print(b)
输出:
[[1, 2], 3, 4]
[[1, 2], 2, 4]
1 a = [[1,2],3,4] 2 b = a.copy() 3 b[0][0] = "123" 4 print(a) 5 print(b)
输出:
[['123', 2], 3, 4]
[['123', 2], 3, 4]
浅拷贝只拷贝一层。
三 深拷贝:deepcopy()
深拷贝后,两者没有任何关系。
1 import copy 2 a = [[1,2],3,4] 3 b = copy.deepcopy(a) 4 b[0][0] = "123" 5 print(a) 6 print(b)
输出:
[[1, 2], 3, 4]
[['123', 2], 3, 4]