Python之深浅拷贝 一 直接赋值 二 浅拷贝 :copy() 三 深拷贝:deepcopy()

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]

 Python之深浅拷贝
一 直接赋值
二 浅拷贝 :copy()
三 深拷贝:deepcopy()

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]

 Python之深浅拷贝
一 直接赋值
二 浅拷贝 :copy()
三 深拷贝:deepcopy()

浅拷贝只拷贝一层。

三 深拷贝: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]