已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩排序记录。
时间: 2024-06-10 13:04:43 浏览: 175
对学生信息以成绩高到低排序
5星 · 资源好评率100%
您好,这道题目可以采用以下步骤解决:
1. 计算每个学生的平均成绩,将其存储在一个列表中。
2. 将每个学生和其平均成绩组成元组,存储在一个字典中。
3. 使用字典的items()方法将每个元组转换为一个元组列表。
4. 使用sort()方法按照列表中元组的第二个元素(即平均成绩)进行排序,排序后的列表即为所求。
下面是一个可能的代码实现:
```
# 输入每个学生的成绩,假设学生分别为A,B,C,D,E,成绩存储在列表中scores中
scores = [[85, 76, 91, 68], [90, 82, 79, 83], [78, 88, 89, 92], [77, 85, 76, 69], [87, 83, 88, 81]]
# 计算每个学生的平均成绩,存储在列表中
averages = [sum(score)/4 for score in scores]
# 将每个学生和其平均成绩组成元组,存储在一个字典中
students = { 'A': averages[0], 'B': averages[1], 'C': averages[2], 'D': averages[3], 'E': averages[4]}
# 使用字典的items()方法将每个元组转换为一个元组列表
sorted_stu = list(students.items())
# 使用sort()方法按照列表中元组的第二个元素(即平均成绩)进行排序,排序后的列表即为所求
sorted_stu.sort(key=lambda x:x[1], reverse=True)
# 打印结果
print("按照平均成绩从高到低将各学生的成绩排序记录如下:")
for stu in sorted_stu:
print("%s: %.1f" % (stu[0], stu[1]))
```
输出结果为:
```
按照平均成绩从高到低将各学生的成绩排序记录如下:
C: 86.8
E: 84.8
B: 83.5
A: 80.0
D: 76.8
```
阅读全文