
本文介绍使用字典对含姓名与数值的嵌套列表进行去重合并,通过键值映射自动累加同名数值,兼顾可读性与性能(适用于数千条数据)。
在处理类似 [['Smith, Karen', '10'], ['Miller, Michael', '20'], ['Smith, Karen', '30']] 这样的嵌套列表时,核心目标是:按姓名(第一列)分组,并将对应的所有数值(第二列)转换为整数后求和。直接在列表上反复查找、修改效率低且易出错;而 Python 字典天然支持以姓名为键、累加和为值的映射关系,是更简洁、高效且符合语义的设计选择。
以下是推荐实现方式:
mylist = [['Smith, Karen', '10'], ['Miller, Michael', '20'], ['Smith, Karen', '30'], ['Taylor, Peter', '95']]
# 使用字典累积求和
result_dict = {}
for name, num_str in mylist:
result_dict[name] = result_dict.get(name, 0) + int(num_str)
# 转回嵌套列表(如需保持原始格式)
merged_list = [[name, str(total)] for name, total in result_dict.items()]
print(merged_list)
# 输出: [['Smith, Karen', '40'], ['Miller, Michael', '20'], ['Taylor, Peter', '95']]
✅ 关键优势说明:
Python 环境工具专业版功能概述Python 环境工具专业版是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。核心要点使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。执行完成后建议检查结果是否符合预期,并保留必要记录。使用与执行同时注意输入完整性、执行条件和输出可用性。从功能定位来看,该技能
- dict.get(key, default) 安全获取当前姓名的累计值,避免 KeyError;
- 时间复杂度为 O(n),远优于嵌套循环的 O(n²),对约 4000 条数据性能表现优异;
- 自动去重,无需预提取重复项或额外判断逻辑。
⚠️ 注意事项:
- 确保第二列数值字符串可被 int() 正确解析(若含浮点数或空值,需改用 float() 或增加异常处理);
- 若最终必须保留原始列表顺序(如按首次出现顺序排列),可结合 collections.OrderedDict(Python
- 如需进一步扩展(如统计次数、记录明细),建议直接保留字典结构,而非强行转回列表。
综上,将“姓名-数值”关系建模为字典,不仅代码简短清晰,也更贴近问题本质,是此类聚合操作的标准实践。










