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

如何实现嵌套列表按首个相同元素去重并合并对应数值?

嵌套列表按首元素聚合的实现方案

你可以借助字典的唯一键特性做中间存储,完成同产品名的数值累加合并,具体实现逻辑和代码如下:

  • 用子列表第一个元素(产品名)作为字典的key,后续数值作为value存储
  • 遍历原列表时,若key不存在则直接存入,若已存在则对对应位置的数值做累加
  • 最后将字典重新组装为嵌套列表格式即可得到目标结果
product_list = [['product_1', 50, 33, 17], ['product_2', 10, 5, 0], 
                ['product_3', 9, 4, 5], ['product_2', 8, 4, 1]]

temp_dict = {}
for item in product_list:
    product_key = item[0]
    values = item[1:]
    if product_key not in temp_dict:
        temp_dict[product_key] = values
    else:
        # 对应位置数值累加
        temp_dict[product_key] = [a + b for a, b in zip(temp_dict[product_key], values)]

# 转换为目标列表格式
aim_list = [[key] + val for key, val in temp_dict.items()]

提示:Python 3.7及以上版本默认字典保留插入顺序,输出列表的元素顺序和产品首次出现的顺序一致;如果使用更低版本的Python且需要保序,可以用collections.OrderedDict替换普通字典,其余逻辑无需修改。

运行上述代码输出的aim_list和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:45:02