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

Python如何匹配列表内多字典的ID键值并计算同ID字段均值

解决方案

你可以使用Python标准库collections.defaultdict完成按id分组的需求,完整实现代码如下:

from collections import defaultdict
from statistics import mean

# 示例输入
input_list = [
    {'id': 123, 'conversions': 1.4227642276422763, 'cpc': 2.2357723577235773, 'cpm': 4.471544715447155, 'reach': 90.65040650406505}, 
    {'id': 123, 'conversions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm': 5.622489959839357, 'reach': 89.5582329317269},
    {'id': 1234, 'conversions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm': 5.622489959839357, 'reach': 89.5582329317269},
]

# 按id分组存储字典
groups = defaultdict(list)
for item in input_list:
    groups[item['id']].append(item)

# 计算每个id对应各字段的平均值
result = []
for id_val, item_lst in groups.items():
    avg_dict = {'id': id_val}
    # 排除id字段,其余数值字段计算均值
    for field in item_lst[0].keys():
        if field != 'id':
            avg_dict[field] = mean(d[field] for d in item_lst)
    result.append(avg_dict)

print(result)

运行输出

输出会包含所有id对应的平均结果,精确计算结果如下:

[
    {'id': 123, 'conversions': 1.4141933588010578, 'cpc': 2.2223038495445197, 'cpm': 5.047017337643256, 'reach': 90.10431971789598},
    {'id': 1234, 'conversions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm': 5.622489959839357, 'reach': 89.5582329317269}
]

你可以根据需求调整输出格式,比如将结果转换为以id为key的字典结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:09:02