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

如何计算字典中多列表各列数值的平均值?

计算字典中列表的列平均值

我创建了一个包含多组键值对的字典,其值为包含数字的列表:

PLE_dict = {
        "Task_1": [1, 2, 8],
        "Task_2": [5, 1, 9],
        "Task_3": [1, 1, 3],
        "Task_4": [5, 3 ,5],
        }

我还定义了一个空列表:Task_mean = []

我的目标是计算该字典中四个列表的“列”平均值,并将结果存入Task_mean列表。具体来说,Task_mean中的每个元素对应字典中各列的平均值,预期结果为:Task_mean = [3, 1.75, 6.25]

我尝试了以下代码,但遇到了问题:

for key, item in PLE_dict.items():
        mean_column = np.mean(item[0])

问题分析

你当前的代码存在两处核心问题:

  • 仅提取了每个列表的第一个元素(item[0])计算均值,没有处理列的聚合逻辑
  • 未将计算结果存入Task_mean列表

解决方案

方法一:用NumPy高效实现

把字典中的列表转为数组后,直接按列计算均值:

import numpy as np

PLE_dict = {
        "Task_1": [1, 2, 8],
        "Task_2": [5, 1, 9],
        "Task_3": [1, 1, 3],
        "Task_4": [5, 3 ,5],
        }

# 提取所有值并转换为NumPy数组
task_array = np.array(list(PLE_dict.values()))
# axis=0表示按列计算均值,最后转为列表
Task_mean = task_array.mean(axis=0).tolist()

print(Task_mean)  # 输出: [3.0, 1.75, 6.25]

方法二:纯Python实现(无需依赖第三方库)

利用zip函数聚合对应列的元素,再逐个计算均值:

PLE_dict = {
        "Task_1": [1, 2, 8],
        "Task_2": [5, 1, 9],
        "Task_3": [1, 1, 3],
        "Task_4": [5, 3 ,5],
        }

Task_mean = []
# zip(*...) 将所有列表的对应位置元素打包成元组,比如第一列是(1,5,1,5)
for column in zip(*PLE_dict.values()):
    mean_val = sum(column) / len(column)
    Task_mean.append(mean_val)

print(Task_mean)  # 输出: [3.0, 1.75, 6.25]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:45:52