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

如何在Dart中通过对应元素相加合并两个列表?

解决方案

要实现两个列表对应元素相加,且保留较长列表超出部分的元素(相当于短列表缺失位置补0相加),可以用以下两种方法:

方法一:手动遍历索引

通过获取两个列表的最大长度,逐个索引判断元素是否存在,存在则取对应值,否则用0代替,再相加存入结果列表:

list1 = [1,3,9,7]
list2 = [1,2,3,4,5]

max_length = max(len(list1), len(list2))
result = []
for i in range(max_length):
    val1 = list1[i] if i < len(list1) else 0
    val2 = list2[i] if i < len(list2) else 0
    result.append(val1 + val2)

print(result)  # 输出: [2, 5, 12, 11, 5]

方法二:使用itertools.zip_longest

Python标准库的itertools.zip_longest可以自动对齐两个列表,用指定值填充短列表的缺失部分,再通过列表推导式完成相加:

from itertools import zip_longest

list1 = [1,3,9,7]
list2 = [1,2,3,4,5]

result = [a + b for a, b in zip_longest(list1, list2, fillvalue=0)]
print(result)  # 输出: [2, 5, 12, 11, 5]

说明:zip_longest默认填充None,这里指定fillvalue=0,刚好符合短列表缺失位置补0相加的需求,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:32:03