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

如何计算Python字典各键对应列表值的平均值并按键排序

解决方案

首先注意:不要用dict作为自定义变量名,它是Python内置的字典类型,直接赋值会覆盖内置方法,后续调用字典相关内置逻辑会报错,下面示例统一把示例字典命名为num_dict。
示例原始字典:

num_dict = { "numbers1" : [4,5,6,3,2] , "numbers2" : [40,5,63,2] , "numbers3" : [10,25,96,3]}

计算每个键对应列表的平均值

平均值的计算逻辑是「列表元素总和 ÷ 列表元素个数」,两种常用实现方式:

  • 原生Python无依赖实现,用内置的sum()算总和、len()算长度,遍历字典键值对生成结果即可,也可以写成字典推导式简化代码:
# 普通写法
avg_res = {}
for k, v in num_dict.items():
    avg_res[k] = sum(v) / len(v)

# 字典推导式简化写法
avg_res = {k: sum(v)/len(v) for k, v in num_dict.items()}

运行后得到的avg_res结果为{'numbers1': 4.0, 'numbers2': 27.5, 'numbers3': 33.5},和手动计算结果一致。

  • 如果不想手动写计算逻辑,可以直接用Python标准库statistics内置的mean()方法,专门用来算数值序列平均值,逻辑更严谨(会自动做参数合法性校验,前提是传入的列表为非空合法数值序列):
import statistics
avg_res = {k: statistics.mean(v) for k, v in num_dict.items()}

按键对字典排序

Python 3.7及以上版本的字典默认会保留键值对的插入顺序,因此排序后重新生成字典即可保留排序结果,直接用内置sorted()方法实现:

# 按键升序排序(默认排序规则,当前示例排序后顺序和原字典一致)
sorted_dict = dict(sorted(avg_res.items(), key=lambda x: x[0]))

# 如果需要按键降序排序,添加reverse=True参数即可
sorted_dict_desc = dict(sorted(avg_res.items(), key=lambda x: x[0], reverse=True))

小提示:如果键名是带数字后缀的字符串(比如同时存在numbers2和numbers10),默认字符串排序会把numbers10排在numbers2前面,这种场景如果需要按数字部分的自然逻辑排序,可以自定义key参数,用正则提取键名里的数字转成整数再比较即可,普通业务场景直接用默认按键排序就够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:45:45