请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师 请教一个问题

a=([1,2],2,3)  

print(id(a),a)  

a[0][0]=23  

print(id(a),a)  

b=([1,2],2,3)  

print(id(b),b)  

b[0]+=[3] 

print(id(b),b) 

a的情形我了解,因为list是可变数据类型,更改他的值不会引起tuple报错

但b的情形改变list的长度为什么会引起tuple报错?

请回复,谢谢!

正在回答

1回答

因为你这样相当于对b[0]赋值了,而元组是不可变的。你可以改,用b[0].append()这种列表方法改,但是不能对b[0]赋值啊!

1 回复 有任何疑惑可以回复我~
  • 提问者 Joe丶丶 #1
    明白了,非常感谢!
    回复 有任何疑惑可以回复我~ 2018-05-27 23:28:36
  • 提问者 Joe丶丶 #2
    还有点不明白的地方,就是我打印发现用append和+=都没有改变list的id ,+=是在原有列表做改动,为什么用+=会报错
    回复 有任何疑惑可以回复我~ 2018-05-27 23:55:35
  • 码之力三段 回复 提问者 Joe丶丶 #3
    不太明白什么意思,有示例吗?
    回复 有任何疑惑可以回复我~ 2018-05-28 13:36:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信