python中深拷贝和浅拷贝易错点

本文详细解释了深拷贝和浅拷贝的概念,包括它们在处理可变类型如列表、字典与不可变类型如数字、字符串时的区别。通过对比copy.copy()和copy.deepcopy()函数,阐述了拷贝在数据独立性和完整性上的作用。

深拷贝和浅拷贝

浅拷贝是对一个对象的顶层(外层)拷贝,只是拷贝了引用,并没有拷贝内容。

变量的赋值是地址的引用,也算是一种浅拷贝。

copy.copy()

深拷贝则是对一个对象深层(递归)的拷贝,保证了数据的独立性。

copy.deepcopy()

可变类型:列表、字典

不可变类型:数字类型、字符串型、元组

如果是可变类型,浅拷贝只拷贝外层,而深拷贝是完全拷贝

如果是纯的不可变类型,那么无论是浅拷贝还是深拷贝,都只是指向同一个地址。如果不可变类型里面还存在可变类型,则浅拷贝是指向,而深拷贝则为完全拷贝。

列表切片、字典的copy方法均属于浅拷贝

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值