ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## copy和deepcopy的区别是什么? python中,变量的存储采用了引用语义的方式,即变量存储不是值本身,而是值的内存地址,对于复杂的数据结构,如列表字典等, 变量存储的是数据结构中每个值的存储地址。 使用copy.copy(obj)对对象obj进行浅拷贝,它复制了对象,但是对象中的元素依然使用的是原始引用,所以只要原始引用不发生改 变,原始引用对应的数值发生变化后,也会影响到浅拷贝后的对象。如下实例: ![](https://box.kancloud.cn/63d9804fbed306c24b32935f32a10301_642x178.jpg) 使用copy.deepcopy(obj)对对象深拷贝,深拷贝会完全复制原变量相关的所有数据,在内存中重新开辟一块空间,不管数据结构 多么复杂,只要遇到可能发生改变的数据类型,就重新开辟一块内存空间把内容复制下来,直到最后一层,不再有复杂的数据类型,就 保持其原引用。在这个过程中我们对这两个变量中的一个进行任意修改都不会影响其他变量。如下实例 ![](https://box.kancloud.cn/46f77ea579c00c4a66bcf79439ab3079_646x192.jpg)