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

附加到元组中定义的列表-是bug吗?

附加到元组中定义的列表-是bug吗?

C#
互换的青春 2019-11-03 15:04:50
所以我有这段代码:tup = ([1,2,3],[7,8,9])tup[0] += (4,5,6)生成此错误:TypeError: 'tuple' object does not support item assignment而这段代码:tup = ([1,2,3],[7,8,9])try:    tup[0] += (4,5,6)except TypeError:    print tup打印此:([1, 2, 3, 4, 5, 6], [7, 8, 9])这是预期的行为吗?注意我意识到这不是一个很常见的用例。但是,尽管预期会出现错误,但我没想到列表会发生变化。
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

好吧,我猜tup[0] += (4, 5, 6)是这样翻译的:


tup[0] = tup[0].__iadd__((4,5,6))

tup[0].__iadd__((4,5,6))通常会更改第一个元素中的列表来执行。但是由于元组是不可变的,因此分配失败。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 272 浏览

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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