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

为什么Python内置sum函数不能直接对多个列表执行求和拼接操作?

Python sum([x,y]) 报错原因说明

首先给出复现问题的基础代码:

x = ['A', 'B', 'C']
y = ['D', 'E', 'F']

执行x + y可以正常得到拼接后的列表,是因为列表类型原生支持两个列表之间的+运算作为拼接操作,两边操作数都是列表,类型匹配符合运算要求。

sum([x,y]) 抛出类型错误的核心原因如下:

  • Python 内置sum()函数的完整语法为 sum(可迭代对象, start=0),默认累加起始值是整数0。它的执行逻辑是先取start的值作为初始累加结果,再依次和可迭代对象内的每个元素执行+运算。
  • 调用sum([x,y])时没有手动指定start参数,初始值默认取0,第一步运算就会执行0 + x,也就是整数和列表做+运算,Python 不支持这种操作数类型组合的+运算,因此抛出报错:

TypeError: unsupported operand type(s) for +: 'int' and 'list'

补充说明

如果一定要用sum实现列表拼接,可以手动将起始值设为空列表:

sum([x,y], [])
# 输出:['A', 'B', 'C', 'D', 'E', 'F']

注意这种拼接方式效率偏低,仅适合少量列表的拼接场景,大量列表拼接更推荐使用itertools.chain或者列表解包语法[*x, *y]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:42:04