为什么Python元组中列表的+ =会引发TypeError但无论如何都会修改列表?

为什么Python元组中列表的+ =会引发TypeError但无论如何都会修改列表?,第1张

为什么Python元组中列表的+ =会引发TypeError但无论如何都会修改列表?

正如我在评论中开始提到的那样,

+=
实际上是 在原地
修改列表,然后尝试将结果分配给元组中的第一个位置。从数据模型文档中:

调用这些方法以实现增强的算术分配(+ =,-=, =,/ =,// =,%=,* =,<< =,>> =,&=,^ =,|
=)。这些方法应尝试就地进行 *** 作(修改self)并返回结果(可以是,但不一定是self)。

+=
因此等于:

t[0].extend(['world']);t[0] = t[0];

因此,就地修改列表不是问题(1.步骤),因为列表是可变的,但是将结果分配回元组是无效的(2.步骤),这就是抛出错误的地方。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5623572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存