有一个班若干个学生考试的成绩表,由学号和成绩组成,将其组成一个字典如: {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}。 输出内容: 1. 按成绩从高到低输出成绩表字典; 2. 计算全班的平均分(精确到小数后两位); 3. 输出最高分的同学:学号:成绩。 输入格式: 按字典格式输入 输出格式: 输出成绩表字典、输出平均分、输出最高分。
时间: 2023-12-18 07:03:02 浏览: 155
好的,这个问题同样可以用Python语言来解决。以下是代码实现:
```python
scores = {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100} # 成绩表字典
# 按成绩从高到低输出成绩表字典
sorted_scores = sorted(scores.items(), key=lambda x:x[1], reverse=True) # 将字典按照值从大到小排序
print("按成绩从高到低输出成绩表字典:")
for item in sorted_scores:
print("%s:%d" % (item[0], item[1]))
# 计算全班的平均分(精确到小数后两位)
avg_score = round(sum(scores.values()) / len(scores), 2) # 计算平均分并保留两位小数
print("全班的平均分为:%.2f" % avg_score)
# 输出最高分的同学:学号:成绩
max_score_student = max(scores.items(), key=lambda x:x[1]) # 找到成绩最高的学生
print("最高分的同学为:%s:%d" % (max_score_student[0], max_score_student[1]))
```
输出示例:
```
按成绩从高到低输出成绩表字典:
1003:100
1008:100
1001:85
1002:70
1005:60
全班的平均分为:83.0
最高分的同学为:1003:100
```
注意事项:
- 字典按照值从大到小排序用到了sorted()函数,其中key参数为lambda表达式,表示按照字典的值进行排序
- 计算平均分用到了sum()函数和len()函数
- 保留两位小数用到了round()函数
- 找到最高分的同学用到了max()函数,其中key参数同样为lambda表达式
阅读全文