所以我有这段代码: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))通常会更改第一个元素中的列表来执行。但是由于元组是不可变的,因此分配失败。
- 3 回答
- 0 关注
- 266 浏览
添加回答
举报
0/150
提交
取消