[Python] 正确复制列表的方法

本文探讨了Python中正确复制列表的方法,区分了浅复制和深复制的概念。通过例子展示了[:], list(), a*1, copy.copy(a)以及copy.deepcopy(a)的差异,强调了使用list()进行复制可以提高代码可读性。" 125595415,13614847,商品页轮播图实现,"['前端开发', 'Vue', 'Django', '后端开发']
摘要由CSDN通过智能技术生成
new = old[:]

 

Python老鸟都知道以上代码是什么意思。它复制列表old到new。它对于新手来说是种困惑而且应该避免使用这种方法。不幸的是[:]标记法被广泛使用,可能是Python程序员不知道更好的列表复制法吧。

 

首先我们需要了解Python是如何管理对象和变量。Python没有C语言中的变量。在C语言中,变量不止是个名字,它是字节集合并真实存在于内存某个位置上。而在Python中,变量仅仅是指向对象的标签。

 

看看以下语句:

a = [1, 2, 3]

 

它表示我们创建了一个指引指向列表[1, 2, 3],但是a不是列表。如果:

b = a

 

我们并没有复制a所指引的列表。我们只是创建了一个新的标签b,然后将其指向a所指向的列表。

 

如果你修改a,那你就同时修改了b,因为它们指向同一个列表:

>>> a = [1, 2, 3]
>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值