19. python 浅复制和深复制
1.
a = [1,2,3] b = a id(a) // 输出a指向的内存id
改变a,或改变b的值,另一个跟着改变
2. deep 浅复制
import copy a = [1,2,[3,4]] b = copy.copy(a) b[0] = 5 print(a) print(b) #a:[1, 2, [3, 4]] #b:[5, 2, [3, 4]] b[2][0] = 8 print(a) print(b) #a:[1, 2, [8, 4]] #b:[5, 2, [8, 4]]
a 和 b 的id已经不同,只拷贝父对象,不会拷贝对象的内部的子对象
3. deepcopy 深复制
import copy a = [1,2,[3,4]] b = copy.deepcopy(a)
递归拷贝对象及其子对象