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

Python字典为各键赋值时所有键仅返回最后一个平均值如何解决

问题根因

你遇到的问题是典型的变量作用域或循环遍历范围错误,常见有两类触发场景:

  • 存储平均值的averageVal、求和/计数变量定义在了外层循环外部,每次循环不会重置,最后所有键取的都是变量最终存储的最后一次计算结果
  • 内层循环没有限定只遍历当前外层循环key对应的列表,而是每次都遍历了所有键的列表,最终只会保留最后一个列表的计算结果

正确实现方案

简洁写法(直接调用内置sum函数)

不需要手动写内层循环,代码可读性更高:

def calc_list_avg(original_dict):
    average_dict = {}
    for key, list_val in original_dict.items():
        # 每次单独计算当前key对应列表的平均值
        average_val = sum(list_val) / len(list_val)
        average_dict[key] = average_val
    return average_dict

手动实现内层循环写法(适合学习原理场景)

注意每次外层循环迭代时,先重置当前列表的求和、计数变量:

def calc_list_avg(original_dict):
    average_dict = {}
    for key in original_dict:
        current_list = original_dict[key]
        # 每次处理新的列表前重置累加变量
        total = 0
        count = 0
        # 内层仅遍历当前key对应的列表
        for num in current_list:
            total += num
            count += 1
        average_val = total / count
        average_dict[key] = average_val
    return average_dict

效果验证

输入测试用例:{'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]}
输出结果:{'a': 2.0, 'b': 5.0, 'c': 8.0},符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:39:02