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

附加到元组中定义的列表-是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 关注
  • 266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信