浅拷贝
概念:
对于一个对象的顶层拷贝,只是将原有的对象打上一个新标签,
所以当被拷贝对象值被改动的时候,拷贝的对象也会发生变化。
例如:
# = 号浅拷贝
i = [11, 22, 33]
j = i
# copy.copy()方法
j = copy.copy(i)
当最外层对象为可变类型时,copy后得到的对象指向新的内存空间
当最外层对象为不可变类型时,copy后得到的对象指向原对象的内存空间
深拷贝
概念:
对于一个对象所有层次的拷贝(递归),
拷贝了内容 并重新创建一个内存,
将被拷贝对象完全在拷贝一遍作为独立的新个体,
所以当被拷贝对象值被改动的时候, 不会影响拷贝对象
例如:
i = [11, 22, 33]
# 深拷贝 copy.deepcopy()方法
j = copy.deepcopy(i)
当拷贝的对象内外层都为不可变类型时,deepcopy后的对象会指向原对象的内存空间
深浅拷贝的作用
1.减少内存的使用
2.以后在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据。
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。