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

Python实现:从数组对象中计算平均值并找最小平均值项

解决方案

我来帮你一步步实现这两个需求,代码都是Python的,直接就能跑:

1. 计算每个子项的平均值

首先我们遍历原始数据,对每个valueXX对应的A-E数值计算平均值,保留两位小数和示例结果一致:

resultFromCalculation = [{'value40': {'A': 3.1, 'B': 5.62, 'C': 5.99, 'D': 5.06, 'E': 5.09}}, {'value50': {'A': 2.95, 'B': 5.21, 'C': 5.41, 'D': 4.64, 'E': 4.5}}, {'value60': {'A': 2.35, 'B': 4.8, 'C': 4.83, 'D': 4.08, 'E': 3.62}}, {'value70': {'A': 2.95, 'B': 5.21, 'C': 5.41, 'D': 4.64, 'E': 4.5}}]

avgValues = []
for item in resultFromCalculation:
    # 每个item是单个键值对的字典,快速取出键和对应的数值字典
    key, values_dict = next(iter(item.items()))
    # 计算平均值并保留两位小数
    average = sum(values_dict.values()) / len(values_dict)
    avg_rounded = round(average, 2)
    avgValues.append({key: avg_rounded})

print(avgValues)
# 输出:[{'value40': 4.97}, {'value50': 4.41}, {'value60': 3.99}, {'value70': 4.41}]

这里用next(iter(item.items()))快速取出单个键值对,避免多余循环,效率更高。计算后四舍五入到两位小数,和你要的结果完全匹配。

2. 找出第一个出现的最小平均值对应的项

接下来我们从avgValues里找到第一个平均值最小的项:

# 把每个字典转换成(键, 平均值)的元组列表,方便后续处理
value_avg_pairs = [(list(d.keys())[0], list(d.values())[0]) for d in avgValues]

# 找到所有平均值里的最小值
min_avg = min(pair[1] for pair in value_avg_pairs)

# 遍历找到第一个匹配最小平均值的完整项
first_min_entry = next(d for d in avgValues if list(d.values())[0] == min_avg)

print(first_min_entry)
# 输出:{'value60': 3.99}

如果只需要键名value60,可以改成:

first_min_key = next(pair[0] for pair in value_avg_pairs if pair[1] == min_avg)
print(first_min_key)  # 输出:value60

这样就完美实现了你要的两个功能,代码简洁易读,也处理了多个项平均值相同的情况(只取第一个出现的)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:51:18