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

Python如何对嵌套列表内首元素相同的子列表的第二个元素求和

问题需求
  • 输入为字符串类型的嵌套列表,每个子列表固定包含2个元素
  • 以子列表的第1个元素作为分组依据,将同组所有子列表的第2个元素转为数值后求和
  • 最终输出首元素唯一、第2个元素为对应求和结果的新嵌套列表
代码实现(Python)

首先定义原始输入列表:

original_list = [
 ['14', '6'],
 ['11', '9'],
 ['3', '-12'],
 ['14', '-6'],
 ['11', '8'],
 ['7', '1'],
 ['4', '-6'],
 ['3', '-12'],
 ['1', '2']
]

方法1:普通字典实现,无需引入第三方依赖

sum_dict = {}
for key, val_str in original_list:
    val = int(val_str)
    if key in sum_dict:
        sum_dict[key] += val
    else:
        sum_dict[key] = val
# 转换为要求的嵌套列表格式
result = [[k, str(v)] for k, v in sum_dict.items()]
print(result)

方法2:使用defaultdict简化写法

from collections import defaultdict

sum_dict = defaultdict(int)
for key, val_str in original_list:
    sum_dict[key] += int(val_str)
result = [[k, str(v)] for k, v in sum_dict.items()]
print(result)
运行结果

两种方法得到的输出一致,符合需求要求:

[['14', '0'], ['11', '17'], ['3', '-24'], ['7', '1'], ['4', '-6'], ['1', '2']]
逻辑说明

遍历原始嵌套列表时,用字典存储每个首元素对应的累加值:

  1. 首次遇到某首元素时,将其第二个元素转整数后作为字典对应键的初始值
  2. 再次遇到相同首元素时,将新的第二个元素转整数后累加到对应键的数值上
  3. 遍历完成后将字典键值对转换为子列表格式,即得到目标结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:06