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

Python如何计算每组字典指定key的总和并追加到对应新key中

问题原因

你将存储len值的added列表定义在了所有循环的最外层,每处理完一组scores后没有清空该列表,所有分组的len值都会被持续追加到同一个列表中,因此求和时得到的是所有已处理分组的累计值,而非当前分组的单独求和结果。

修改方案

方案1:基于原有逻辑修改

只需要将added列表的初始化移动到classes的遍历循环内部,每次处理新的分组时都新建空列表存储当前组的len值即可:

output=[]
for k,v in l.items():
    if k=='classes':
        for i in v:
            added=[] # 每次处理新的classes分组时,初始化空列表存储当前组的len值
            for ke,ve in i.items():
                if ke=='scores':
                    for j in ve:
                        for key,val in j.items():
                            if key=='len':
                                add = val
                                added.append(add)
            sumed=sum(added)
            out={'result':ve,'total':sumed}
            output.append(out)
print(output)

方案2:简化写法

不需要多层嵌套循环,直接遍历classes列表,对每个分组的scores直接求和即可,代码可读性更高:

output = []
for item in l['classes']:
    scores = item['scores']
    total = sum(s['len'] for s in scores)
    output.append({'result': scores, 'total': total})
print(output)

两种写法都可以得到你预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:02