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

如何实现字典列表同类项价格求和合并(无显式键名依赖)

解决方案

实现代码

order = [{"name":"coffee", "price":5}, {"name":"mug", "price":10}, {"name":"coffee", "price":6}]

# 临时字典用于按第一个键值对分组累加
temp_group = {}

for item in order:
    # 获取字典的键列表(Python 3.7+ 保证插入顺序)
    keys = list(item.keys())
    # 取第一个键对应的值作为分组标识
    group_id = item[keys[0]]
    # 取第二个键作为求和字段
    sum_field = keys[1]
    
    if group_id in temp_group:
        # 累加求和字段的值
        temp_group[group_id][sum_field] += item[sum_field]
    else:
        # 首次出现该分组,存入字典副本
        temp_group[group_id] = item.copy()

# 转换为目标列表格式
final_order = list(temp_group.values())
print(final_order)

逻辑说明

  • 用temp_group字典做分组容器,避免直接遍历原列表时的索引混乱问题(这也是你之前循环出错的常见原因)。
  • 通过索引keys[0]和keys[1]获取分组键和求和字段,完全不依赖具体键名,适配未知字典结构的场景。
  • 首次遇到分组时存入字典副本,后续遇到同分组项直接累加求和字段的值,最后将字典的值转为列表即可得到结果。

内容的提问来源于stack exchange,提问作者Arad Arvin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:42:35