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

Python按字典指定key分组统计数值总和并取Top3的实现方法

实现代码(基于你现有代码扩展)

from collections import defaultdict

base = [
    {'num': 10, 'bet': '100EUR'},
    {'num': 22, 'bet': '10EUR'},
    {'num': 10, 'bet': '210EUR'},
    {'num': 11, 'bet': '100EUR'},
    {'num': 8, 'bet': '50EUR'},
    {'num': 10, 'bet': '10EUR'},
    {'num': 8, 'bet': '30EUR'},
    {'num': 32, 'bet': '10EUR'}]

# 你原有处理逻辑:提取金额转整数
newbase = [{'num': b['num'], 'bet': int(b['bet'][:-3])} for b in base]

# 按num分组统计总投注额
bet_sum = defaultdict(int)
for item in newbase:
    bet_sum[item['num']] += item['bet']

# 按总金额降序排序,取前3
top3 = sorted(bet_sum.items(), key=lambda x: x[1], reverse=True)[:3]

# 按要求格式输出
for num, total in top3:
    print(f"{num} = {total} EUR")

无额外依赖的简化版本(不用导入collections)

把分组统计的部分替换为以下代码即可,其余逻辑不变:

bet_sum = {}
for item in newbase:
    num = item['num']
    bet_sum[num] = bet_sum.get(num, 0) + item['bet']

运行后输出完全符合预期:

10 = 320 EUR
11 = 100 EUR
8 = 80 EUR

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:54:08