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

Python多层嵌套字典lines键下各指标平均值计算实现

Python嵌套字典指标平均值计算实现

完整可运行代码

from collections import defaultdict

# 原始嵌套字典
original_dict = {
    'data1': {
        'IOU': {'B': 0.1, 'G': 0.3},
        'lines': {'B': {'accuracy': 0.3, 'recall': 0.3}, 'G': {'accuracy': 0.1, 'recall': 0.6}}
    },
    'data2': {
        'IOU': {'B': 0.2, 'G': 0.8},
        'lines': {'B': {'accuracy': 0.5, 'recall': 0.3}, 'G': {'accuracy': 0.9, 'recall': 0.5}}
    }
}

# 初始化指标累加器
metric_sum = defaultdict(lambda: defaultdict(float))
# 统计data分组总数
data_count = len(original_dict)

# 遍历所有data分组累加对应指标值
for data_item in original_dict.values():
    lines_info = data_item['lines']
    for group in ('B', 'G'):
        group_info = lines_info[group]
        metric_sum[group]['accuracy'] += group_info['accuracy']
        metric_sum[group]['recall'] += group_info['recall']

# 计算平均值并组装成目标结构
result = {
    'lines': {
        group: {
            'accuracy': metric_sum[group]['accuracy'] / data_count,
            'recall': metric_sum[group]['recall'] / data_count
        } for group in ('B', 'G')
    }
}

print(result)

运行输出

{'lines': {'B': {'accuracy': 0.4, 'recall': 0.3}, 'G': {'accuracy': 0.5, 'recall': 0.55}}}

逻辑说明

  • 使用defaultdict构建累加结构,无需手动初始化键值,代码更简洁
  • 自动读取所有data分组的数量,新增data分组时无需修改代码即可自动适配
  • 遍历所有分组累加对应指标的总和,最后除以分组数得到平均值,组装为要求的字典结构

内容的提问来源于stack exchange,提问作者j-ax

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:39:04