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

Python如何对两个嵌套列表中前两元素相同的项的末位元素求和

你代码的问题在于Python中列表的+运算符默认执行拼接操作,不是按位置对应元素相加,所以你会得到两个子列表拼接后的长列表结果。

解法1:列表顺序完全对应时使用(你的示例场景适用)

如果两个列表的元素顺序完全一致,第n项的前两个元素必然匹配,可以直接用列表推导式实现:

lst1 = [[1,1,2],[1,2,4],[2,1,7],[2,2,10]]
lst2 = [[1,1,0.2],[1,2,0.4],[2,1,0.7],[2,2,0.5]]
output = [[a[0], a[1], a[2] + b[2]] for a, b in zip(lst1, lst2)]

运行后output就是你需要的[[1, 1, 2.2], [1, 2, 4.4], [2, 1, 7.7], [2, 2, 10.5]]。

解法2:列表顺序不匹配时使用

如果两个列表的元素顺序不一定对应,存在前两个元素相同的项位置不一致的情况,可以先将其中一个列表转换为字典做匹配映射,逻辑更稳妥:

lst1 = [[1,1,2],[1,2,4],[2,1,7],[2,2,10]]
lst2 = [[1,1,0.2],[1,2,0.4],[2,1,0.7],[2,2,0.5]]
# 构建前两个元素到最后一个元素的映射
key_val_map = {(sub[0], sub[1]): sub[2] for sub in lst2}
output = []
for sub in lst1:
    current_key = (sub[0], sub[1])
    if current_key in key_val_map:
        output.append([sub[0], sub[1], sub[2] + key_val_map[current_key]])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 10:00:00