Python深拷贝、浅拷贝
浅拷贝
对一个对象的顶层拷贝
拷贝了引用,并没有拷贝内容
a = [22,33] b = a print(id(a)) # 8205776 print(id(b)) # 8205776
a.append(44)
print(b) # [22,33,44]
a = [[1,2],[3,4]] b = a print(id(a)) # 46283312 print(id(b)) # 46283312 print(id(a[0])) # 46283192 print(id(b[0])) # 46283192 print(id(a[1])) # 46284112 print(id(b[1])) # 46284112
b = a 让b这个变量指向a的空间
d = copy.copy(c) 复制所有c指向的数据到一个新空间, 但是不会递归copy
深拷贝
对一个对象所有层次的拷贝(递归)
import copy a = [22,33] b = copy.deepcopy(a) print(id(a)) # 54868448 print(id(b)) # 54869328
a.append(33)
print(b) # [22,33]
import copy a = [[1,2],[3,4]] b = copy.deepcopy(a) print(id(a)) # 23476904 print(id(b)) # 53065208 print(id(a[0])) # 23476784 print(id(b[0])) # 53065408 print(id(a[1])) # 23477664 print(id(b[1])) # 53065448
d = copy.deepcopy(c) 会将c指向的空间进行递归copy

浙公网安备 33010602011771号