为了账号安全,请及时绑定邮箱和手机立即绑定

我有些不明白

T = (1, 'CH', [3, 4])
L = T[2]
print(L) # ==> [3, 4]
# 尝试替换L中的元素
L[1] = 40
print(L) # ==> [3, 40]
print(T) # ==> (1, 'CH', [3, 40])

比如这个,讲义里的代码,L=T[2],我感觉是一个赋值语句啊,相当于把T[2]给了L,那L和T的本身应该没关系吧,为什么变L会影响T呢。

正在回答

3 回答

在这个例子中,当你通过L修改列表的第二个元素时,由于LT[2]指向同一个对象,因此T[2]也会反映出这个修改。

总结

所以,你的理解部分正确:L = T[2]确实是一个赋值语句,但它并没有创建T[2]的一个新副本。相反,它让LT[2]都指向了同一个对象。这就是为什么修改L会影响T的原因。希望这个解释能帮助你更好地理解Python中的对象引用和可变与不可变类型。


0 回复 有任何疑惑可以回复我~

在Python中,元组是不可变的数据类型,但它们可以包含对其他可变对象的引用,比如列表。所以,元组的不可变性只限于元组自身的操作,而不限于其元素所指向的对象。

0 回复 有任何疑惑可以回复我~
x=(2,'FG',[4,6])
print(x) #不会改变x中的数据类型
y=x[2]
print(y)#把索引2里面的list去改变这个x中的数据
#x[2]已经赋给了y这个变量名 就等于这是tuple中的第二个list列表 可以转换
y[1]=20
print(y)#就可以把list中的数值进行在tuple中改变


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我有些不明白

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号