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

Python字典列表合并重复项并汇总对应价格求助

解决字典列表按name合并并汇总price的问题

现有代码的问题

你当前的代码只是收集了不重复的name和price值,但没有建立name与对应价格的关联,也没有做数值累加,所以无法得到目标结果。另外注意:原数据里的price是字符串类型,直接操作会导致字符串拼接,必须先转为数值类型(整数/浮点数)才能做加法。

解决方案

方法一:普通字典实现

l = [{'id':  1, 'name': 'apple', 'price': '100', 'year': '2000', 'currency': 'eur'},
     {'id':  2, 'name': 'apple', 'price': '150', 'year': '2071', 'currency': 'eur'},
     {'id':  3, 'name': 'apple', 'price': '1220', 'year': '2076', 'currency': 'eur'},
     {'id':  4, 'name': 'cucumber', 'price': '90000000', 'year': '2080', 'currency': 'eur'},
     {'id':  5, 'name': 'pear', 'price': '1000', 'year': '2000', 'currency': 'eur'},
     {'id':  6, 'name': 'apple', 'price': '150', 'year': '2022', 'currency': 'eur'},
     {'id':  9, 'name': 'apple', 'price': '100', 'year': '2000', 'currency': 'eur'},
     {'id': 10, 'name': 'grape', 'price': '150', 'year': '2022', 'currency': 'eur'},
]

# 按name分组累加价格
total_by_name = {}
for item in l:
    name = item['name']
    # 把字符串price转为整数,避免拼接
    price = int(item['price'])
    if name in total_by_name:
        total_by_name[name] += price
    else:
        total_by_name[name] = price

# 生成你期望的单name格式(以apple为例)
apple_result = [{'name': 'apple'}, {'price': total_by_name['apple']}]
print(apple_result)

# 如果要生成所有name的汇总列表
final_result = [{'name': name, 'price': total} for name, total in total_by_name.items()]
print(final_result)

方法二:用collections.defaultdict简化代码

defaultdict可以自动处理key不存在的情况,代码更简洁:

from collections import defaultdict

total_by_name = defaultdict(int)
for item in l:
    total_by_name[item['name']] += int(item['price'])

# 生成目标格式
apple_result = [{'name': 'apple'}, {'price': total_by_name['apple']}]
print(apple_result)

输出示例

针对apple的输出:

[{'name': 'apple'}, {'price': 1720}]

所有name的汇总输出:

[{'name': 'apple', 'price': 1720}, {'name': 'cucumber', 'price': 90000000}, {'name': 'pear', 'price': 1000}, {'name': 'grape', 'price': 150}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:55:15