深浅拷贝
深浅拷贝的区别
# 分类
copy.copy #浅拷贝
copy.deepcopy() #深拷贝
= #赋值
#字符串、数字的深浅拷贝和赋值内存地址是不变。 a = 123 b = copy.copy(a) print(id(a)) print(id(b))
#元祖、列表、字典及其他 a = {'k1':'v1','k2':12,'k3':[23,'22']} b = a print(id(a)) print(id(b)) >>>2384560090208 >>>2384560090208 #赋值时内存地址不变
a = {'k1':'v1','k2':12,'k3':[23,'22']} b = copy.copy(a) print(id(a)) print(id(b)) #浅拷贝时内存地址不一样,只拷贝了第一层,列表中的元素还是同一个
a = {'k1':'v1','k2':12,'k3':[23,'22']} b = copy.deepcopy(a) print(id(a)) print(id(b)) #深拷贝时内存地址不一样,字典中的所有元素全部拷贝一份