Python:创建对象中的引用和拷贝

本文详细解释了Python中列表的引用与拷贝的区别。通过具体示例展示了使用等号进行赋值创建的是引用,而使用切片创建的是拷贝。进一步说明了两者在列表修改时的不同表现。

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

a=[1,2,3]
b=a  #b是a的一个引用
b=a[:] #b是a中所有元素的一个拷贝

做出如下操作

情况1:使用b=a引用
a=[1,2,3]
b=a
a[0]='qq'
print(a)
print(b)  #由于b是a的引用,对于a的修改也是对b的修改,a和b结果相同

del a
print(a)
print(b) #a对象被删除,而b对象仍然不变

主要是因为:

del a 删除列表对象的引用(删除的仅仅是引用计数,直到引用计数=0时,才不存在)
del a[:] 删除列表对象中的所有元素

情况2:使用b=a[:]拷贝
a=[1,2,3]
b=a[:]
a[0]='qq'
print(a)
print(b)  # b=[1,2,3] a= ['qq',2,3]
#这是因为b仅仅是a中元素的拷贝,除了元素相同之外,没有任何关系,对于a的任何操作不影响b

del a
print(a)
print(b) #a对象被删除,而b对象仍然不变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值