有一个班若干个学生考试的成绩表,由学号和成绩组成,将其组成一个字典如: {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}。 输出内容: 1. 按成绩从高到低输出成绩表字典; 2. 计算全班的平均分(精确到小数后两位); 3. 输出最高分的同学:学号:成绩。
时间: 2023-12-24 08:03:41 浏览: 15
好的,关于你的问题,以下是ChitGPT的回答:
1. 按成绩从高到低输出成绩表字典:
可以使用sorted函数对字典按照value值进行排序,然后倒序输出即可。
```python
score_dict = {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}
# 按成绩从高到低排序
sorted_dict = sorted(score_dict.items(), key=lambda x:x[1], reverse=True)
# 输出排序后的结果
for item in sorted_dict:
print(item[0], ':', item[1])
```
输出结果为:
```
1003 : 100
1008 : 100
1001 : 85
1002 : 70
1005 : 60
```
2. 计算全班的平均分(精确到小数后两位):
可以遍历字典,累加所有成绩,然后除以学生人数即可。
```python
score_dict = {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}
# 计算平均分
total_score = sum(score_dict.values())
avg_score = total_score / len(score_dict)
# 输出平均分
print('全班平均分为:{:.2f}'.format(avg_score))
```
输出结果为:
```
全班平均分为:83.00
```
3. 输出最高分的同学:学号:成绩。
可以遍历字典,找到最高分,然后输出对应的学号和成绩。
```python
score_dict = {'1001':85,'1002':70,'1003':100,'1005':60,'1008':100}
# 找到最高分
max_score = max(score_dict.values())
# 输出最高分的同学
for item in score_dict.items():
if item[1] == max_score:
print('最高分的同学为:{}:{}'.format(item[0], item[1]))
```
输出结果为:
```
最高分的同学为:1003:100
最高分的同学为:1008:100
```