python深拷贝和浅拷贝

本文深入探讨Python中对象拷贝的概念,区分浅拷贝与深拷贝的区别,包括它们如何处理对象及其内部元素的复制过程。通过实例说明,帮助读者理解在不同场景下选择合适拷贝方式的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Python中对象的赋值其实就是对象的引用(指向同一片地址空间)。当创建一个对象,把它赋值给另一个变量的时候,python并没有拷贝这个对象,只是拷贝了这个对象的引用而已。
浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用(id/地址空间)而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制。
深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,把对象复制一遍,并且该对象中引用的其他对象我也复制。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
深拷贝:e = copy.deepcopy( c ),逐层拷贝到最里面一层。
a = [11,22,33]
b = [44,55,66]
c = [a,b]
d = c
e = copy.deepcopy( c )
在这里插入图片描述

浅拷贝:赋值和copy.copy()
copy.copy()又分两种情况,一种是可变数据类型类型的拷贝,另一种是不可变数据类型的拷贝。
可变数据类型的拷贝,会往里面拷贝一层。
不可变数据类型的拷贝,一层都不变,相当于赋值这种浅拷贝。
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值