如何使用Python编写一个函数,该函数接收一个表示学生成绩的字典(键为学生姓名,值为成绩列表),然后分别计算出全部成绩的最高分、最低分和平均分,并找出获得最高分的学生名?请提供相关的代码实现及解释。
时间: 2024-12-11 13:29:19 浏览: 36
Python如何使用函数做字典的值
你可以创建一个名为`analyze_scores`的函数,这个函数接收一个字典作为输入,对每个学生的成绩列表进行处理,然后返回所需的结果。下面是一个简单的Python函数实现:
```python
def analyze_scores(scores_dict):
# 初始化变量存储最高分、最低分和总分数
max_score = float('-inf') # -inf用于初始化,因为所有成绩都会比它大
min_score = float('inf') # +inf用于初始化,因为所有成绩都会比它小
total_scores = 0
highest_student = None
for student, scores in scores_dict.items():
# 计算单个学生的成绩总分和当前最高分
sum_scores = sum(scores)
if sum_scores > max_score:
max_score = sum_scores
highest_student = student
# 更新最低分和总分数
min_score = min(min_score, min(scores))
total_scores += sum_scores
# 计算平均分
average_score = total_scores / len(scores_dict)
return {
"max_score": max_score,
"min_score": min_score,
"average_score": average_score,
"highest_student": highest_student
}
# 示例用法
students_scores = {
"张三": [85, 90, 95],
"李四": [78, 82, 86],
"王五": [98, 99, 100]
}
result = analyze_scores(students_scores)
print(result)
```
在这个函数中,我们遍历每个学生及其成绩列表,通过比较每个学生的总分与当前最高分,找到最高分学生。同时,我们也记录最低分和总分数,最后通过总分数除以学生数量得到平均分。
阅读全文