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

如何在for循环中正确存储变量到列表并找出学生最高平均分?

解决学生最高平均分查找问题

问题根源

你代码里的my_list = []写在了循环的else分支内部,导致每次处理有成绩的学生时,都会重新创建一个空列表,再把当前平均分加进去,自然每个平均分都单独在一个列表里,没法收集所有数据。

修复方案

把列表初始化移到循环外面,同时统一处理所有学生的平均分(包括无成绩的情况),最后用max()函数找出最大值:

students = [
    {"name": "John", "surname": "Doe", "grades": [5, 5, 4, 4]},
    {"name": "Jane", "surname": "Doe", "grades": [4, 3, 4, 3, 5]},
    {"name": "Bill", "surname": "Gates", "grades": [5, 5, 5, 3]},
    {"name": "Steve", "surname": "Jobs", "grades": [3, 5, 4, 3, 3, 5]},
    {"name": "Guido", "surname": "Van Rossum", "grades": [5, 3, 5, 4, 5, 5, 3, 5]},
    {"name": "Elon", "surname": "Musk", "grades": None}
]

# 列表初始化移到循环外,仅创建一次
my_list = []
for student in students:
    if student['grades'] is None:
        avg = 0.0
        print('this is zero')
    else:
        avg = round(sum(student['grades']) / len(student['grades']), 1)
        print(avg)
    # 将每个学生的平均分追加到同一个列表中
    my_list.append(avg)

# 查找最高平均分
highest_avg = max(my_list)
print(f"最高平均分: {highest_avg}")

额外优化(可选)

如果需要同时知道是谁拿到了最高平均分,可以用字典存储学生与对应平均分的映射,再找出最大值对应的学生:

students = [
    {"name": "John", "surname": "Doe", "grades": [5, 5, 4, 4]},
    {"name": "Jane", "surname": "Doe", "grades": [4, 3, 4, 3, 5]},
    {"name": "Bill", "surname": "Gates", "grades": [5, 5, 5, 3]},
    {"name": "Steve", "surname": "Jobs", "grades": [3, 5, 4, 3, 3, 5]},
    {"name": "Guido", "surname": "Van Rossum", "grades": [5, 3, 5, 4, 5, 5, 3, 5]},
    {"name": "Elon", "surname": "Musk", "grades": None}
]

student_avg = {}
for student in students:
    full_name = f"{student['name']} {student['surname']}"
    if student['grades'] is None:
        avg = 0.0
        print(f"{full_name}: this is zero")
    else:
        avg = round(sum(student['grades']) / len(student['grades']), 1)
        print(f"{full_name}: {avg}")
    student_avg[full_name] = avg

# 找出最高平均分对应的学生
highest_entry = max(student_avg.items(), key=lambda x: x[1])
print(f"最高平均分获得者: {highest_entry[0]}, 分数: {highest_entry[1]}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:00:16