所以我有这段代码: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贡献1785条经验 获得超4个赞
好吧,我猜tup[0] += (4, 5, 6)是这样翻译的:
tup[0] = tup[0].__iadd__((4,5,6))
tup[0].__iadd__((4,5,6))通常会更改第一个元素中的列表来执行。但是由于元组是不可变的,因此分配失败。
添加回答
举报
0/150
提交
取消