博客摘录「 Python的引用、浅拷贝和深拷贝」2023年12月3日

 在Python中,赋值符号“=”只是将对象进行了引用,而不是进行对象的复制。(引用地址)

如果想要进行对象的复制,可以使用copy模块的copy函数copy()函数分为:浅拷贝copy.copy()和深拷贝copy.deepcopy()

浅拷贝b=a.copy():此时,id(a)!=id(b),也就是说a和b是两个独立的对象,但是这两个对象中的数据仍然是引用,如a[0]是b[0]指向的同一对象。即,copy模块的copy函数是浅拷贝:拷贝父对象,但不会拷贝对象的内部子对象。

对于对象的copy()函数,需要import copy后才可使用(而字典和列表不必,可以list.copy()、dict.copy()直接使用copy()方法,并且也是浅拷贝)

深拷贝b=a.copy.deepcopy():a和b完全独立,犹如创建了一个副本

需要import copy后才可使用(包括字典和列表)

总结:浅拷贝和深拷贝是Python中常用的对象复制方法,开发者在编写代码时应根据具体情况选择使用哪种方法。同时,对于复杂的数据类型和嵌套结构,深拷贝更适合保留数据信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值