用ps做招生网站,中国志愿者服务网站登录注册,网站开发可以做什么,杭州的网站建设公司Python 中赋值语句不复制对象#xff0c;而是在目标和对象之间创建绑定关系。对于自身可变或者包含可变项的集合对象#xff0c;开发者有时会需要生成其副本用于改变操作#xff0c;进而避免改变原对象。copy 模块提供了通用的浅层复制 copy() 和深层复制 deepcopy() 操作。…Python 中赋值语句不复制对象而是在目标和对象之间创建绑定关系。对于自身可变或者包含可变项的集合对象开发者有时会需要生成其副本用于改变操作进而避免改变原对象。copy 模块提供了通用的浅层复制 copy() 和深层复制 deepcopy() 操作。 copy() 仅复制对象本身而不对其中的子对象进行复制如果对原子对象进行修改那么浅层复制之后的对象也会随着修改。 deepcopy() 是真正意义上的复制即重新开辟一片空间经常说的复制实际上就是 deepcopy深层复制之后的对象不受原对象的影响无论原对象发生什么修改深层复制的对象都不会发生改变。 import copylist1 [1, 2, [3, 4], 5]list2 copy.copy(list1)list3 copy.deepcopy(list1)list2 list3
Truelist2 is list3
False以上两个列表 list2 和 list3 分别经过了浅层复制和深层复制虽然值是一样的但是本质上并不是同一个列表 import copylist1 [1, 2, [3, 4], 5]list2 copy.copy(list1)list3 copy.deepcopy(list1)list1[2][0] 3333list1
[1, 2, [3333, 4], 5]list2
[1, 2, [3333, 4], 5]list3
[1, 2, [3, 4], 5]将原列表的子对象 [3, 4] 改成 [333, 4]可以看到浅层复制后 list2 的值也会改变而深层复制后 list3 的值并不会改变。
简单来说
浅层复制 copy()复制父对象子对象仍然使用引用的方式深层复制 deepcopy()复制了对象和对象的所有子对象。