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

如何不使用sum()函数计算字典中各班级平均分及平均分的总均值

不使用内置sum()的实现方案

你猜想的嵌套循环思路是完全可行的,实现逻辑如下:

  • 第一层外层遍历字典的每一组班级名称和对应成绩列表,内层遍历单个班级的所有成绩,手动累加成绩总和、统计学生人数,计算单个班级的平均分
  • 后续再遍历所有班级的平均分结果,再次手动累加计算总均值
def calc_avg_without_sum(classes):
    class_averages = {}
    # 计算每个班级的平均分
    for class_name, grades in classes.items():
        class_total = 0
        student_num = 0
        for grade in grades:
            class_total += grade
            student_num += 1
        class_averages[class_name] = class_total / student_num
    
    # 计算各班平均分的总均值
    all_avg_total = 0
    class_num = 0
    for avg_score in class_averages.values():
        all_avg_total += avg_score
        class_num += 1
    average_of_averages = all_avg_total / class_num
    return class_averages, average_of_averages

# 测试调用
classes = {"Spanish II": [100, 99, 100, 98], "US History I": [95, 96, 97, 94]}
averages, total_avg = calc_avg_without_sum(classes)
print("Average grades in each class:", averages)
print("Average of average grades:", total_avg)

运行后输出结果和你原有使用sum()的代码结果完全一致:

Average grades in each class: {'Spanish II': 99.25, 'US History I': 95.5}
Average of average grades: 97.375

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:54:03