You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中使用+运算符向列表添加元素时的异常问题

为什么a = a + '3'报错但a += '3'能得到[1,2,'3']?

两种写法的本质区别

  • a = a + '3'报错原因:
    +运算符要求左右两侧操作数的类型必须一致。这里a是列表类型,'3'是字符串类型,两者无法直接通过+拼接,Python会直接抛出TypeError,提示不能将列表与字符串相加。

  • a += '3'正常执行的原因:
    +=属于增强赋值运算符,对于列表对象来说,它实际调用的是列表的__iadd__()方法。这个方法接受可迭代对象作为参数,而字符串本身是可迭代的(会被拆分为单个字符)。所以'3'会被当作可迭代对象,其中的元素(即'3'这个字符)会被添加到列表a的末尾,最终得到[1,2,'3']。

补充验证

如果执行a += 'abc',结果会是[1,2,'a','b','c'],这进一步证明+=是把字符串作为可迭代对象,逐个添加其元素到列表中。

内容的提问来源于stack exchange,提问作者Amit Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:45:53