先简单自己理解,记录
1.赋值
在 python 中赋值语句总是建立对象的引用值,而不是复制对象。因此,python 变量更像是指针,总是指向。
b = a 把a赋值给b a,b 同时指向list [1,2,3] 当其中一个元素改变,a,b指向的值改变,所以a,b都改变。
2.用copy浅复制
b = a.copy() b 指向a的副本,但b中第一层元素指向仍相同。可以改变元素,但指向并没有改变。
3.用deepcopy()深复制
b = a.deepcopy() 指向全部不同
>>> x =[1,2,3]
>>> a = [1,2,3]
>>> b = a
>>> a[0] =1
>>> b
[1, 2, 3]
>>> b =a.copy()
>>> b[1] = 5
>>> a
[1, 2, 3]
>>> a = [1,2,[1,2]]
>>> b = a.copy()
>>> b[0] = 7
>>> b[2][0] = 7
>>> a
[1, 2, [7, 2]]
>>> b
[7, 2, [7, 2]]