python列表 关于深浅拷贝问题

本文详细介绍了浅拷贝和深拷贝的区别,浅拷贝只复制对象的引用地址,因此对拷贝后的对象进行修改会影响到原始对象;而深拷贝则会申请新的内存空间来完全复制对象的内容,因此对拷贝后的对象进行修改不会影响到原始对象。文章还讨论了不同的拷贝方法,如使用copy()方法、列表生成式和切片进行浅拷贝,以及使用deepcopy()方法实现深拷贝。
1、浅拷贝,只拷贝对象地址,主从影响
2、深拷贝,申请新空间,复制对象值,彼此不影响

结论:拷贝会复制对象存储的内容(列表元素存储的是地址),浅拷贝复制外层列表各个元素的地址,以及列表内嵌套列表的地址,但不会复制嵌套列表内元素的地址

其他:

直接赋值:

如果用 = 直接赋值,是非拷贝方法。

赋值的两个列表是等价的,修改其中任何一个列表都会影响到另一个列表。

浅拷贝包括:

1.copy()方法

2.使用列表生成式

2.使用列表生成式

4.使用切片

深拷贝:

如果用deepcopy()方法,则无论多少层,无论怎样的形式,得到的新列表都是和原来无关的,这是最安全最清爽最有效的方法。

需要import copy

图解:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值