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

Python如何按字典gender字段分组统计对应cost的总和

错误原因

你现有代码无论匹配到哪个性别,都是直接对完整的cost列表求和,没有筛选对应性别的关联cost值,所以所有分组结果都是总花费。

修复方案

方案1:修改你原有的循环逻辑(符合你猜测的调整求和逻辑的思路)

在求和时增加对应性别的过滤条件即可:

for g in set(bbb_dct["gender"]):
    # 仅对和当前性别同位置的cost做累加
    x = sum(cost for gender, cost in zip(bbb_dct["gender"], bbb_dct["cost"]) if gender == g)
    print({g: x})

方案2:遍历配对值累加(性能更优,仅需一次遍历)

提前初始化结果字典,把gender和cost按位置配对后遍历累加:

# 初始化各性别初始累计值为0
result = {"F": 0, "M": 0, "O": 0}
# 按位置配对两个列表的元素
for gender, cost in zip(bbb_dct["gender"], bbb_dct["cost"]):
    result[gender] += cost
# 按要求格式输出
for k, v in result.items():
    print({k: v})

两种方案运行后都会输出你需要的结果:

{'O': 4}
{'F': 479}
{'M': 2932}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:48:03