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

Python中sum(l,[])与列表加法操作结果差异的技术疑问

为什么sum(l, [])和列表加法的结果不一样?

先看你的示例代码:

l = [ [[1,2,3], [2,3,4]] ]

1. sum(l, [])的执行逻辑

sum(iterable, start)的作用是把可迭代对象里的每个元素依次和初始值start做加法,最终返回累加结果。

对你的例子来说:

  • 可迭代对象l里只有一个元素:[[1,2,3], [2,3,4]]
  • 初始值start是空列表[]
  • 实际执行的是:[] + [[1,2,3], [2,3,4]],也就是把l里的唯一元素拼接到初始空列表里,结果自然是[[1,2,3], [2,3,4]]

2. 列表加法[] + l的执行逻辑

列表加法(包括直接调用__add__方法)是把两个列表的元素合并成一个新列表,这里的两个操作数分别是[]和l:

  • l本身是一个列表,它的元素是[[1,2,3], [2,3,4]]
  • 所以[] + l等价于把l的所有元素(也就是那个二维列表)加到空列表里,结果就是[[[1,2,3], [2,3,4]]]

核心差异总结

  • sum(l, [])是遍历l的内部元素,将每个元素与初始值做拼接
  • [] + l是直接把l作为一个完整列表,和空列表做拼接

内容的提问来源于stack exchange,提问作者조해피

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:05:33