有一个字典,存放学生的学号和成绩,列表里的三个数据分别是学生的语文,数学和英语成绩; dict={'01':[67,88,45],'02':[97,68,85],'03':[97,98,95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]} 完成以下操作: 1)编写函数,返回每门成绩均大于等于85的学生的学号。 2)编写函数,返回每一个学号对应的平均分(sum和len)和总分(sum),结果保留两位小数。 3)编写函数,返回按总分升序排列的学号列表。 【输入形式】无 【输出形式】 03 学号:01 平均分:66.67 总分:200 学号:02 平均分:83.33 总分:250 学号:03 平均分:96.67 总分:290 学号:04 平均分:53.33 总分:160 学号:05 平均分:71.67 总分:215 学号:06 平均分:70.00 总分:210 03 02 05 06 01 04
时间: 2024-03-16 12:45:03 浏览: 54
以下是实现您所需功能的代码,请参考:
```python
dict={'01':[67,88,45],'02':[97,68,85],'03':[97,98,95],'04':[67,48,45],'05':[82,58,75],'06':[96,49,65]}
# 1) 返回每门成绩均大于等于85的学生的学号
def get_students_score_above_85(dict):
res = []
for key, value in dict.items():
if all(score >= 85 for score in value):
res.append(key)
return res
# 2) 返回每一个学号对应的平均分(sum和len)和总分(sum),结果保留两位小数
def get_students_score_avg_and_total(dict):
res = []
for key, value in dict.items():
avg_score = round(sum(value) / len(value), 2)
total_score = sum(value)
res.append((key, avg_score, total_score))
return res
# 3) 返回按总分升序排列的学号列表
def sort_students_by_total_score(dict):
res = []
for key, value in dict.items():
total_score = sum(value)
res.append((key, total_score))
res.sort(key=lambda x: x[1])
return [x[0] for x in res]
# 输出结果
students_score_above_85 = get_students_score_above_85(dict)
print("每门成绩均大于等于85的学生的学号:", students_score_above_85)
students_score_avg_and_total = get_students_score_avg_and_total(dict)
print("每一个学号对应的平均分(sum和len)和总分:")
for item in students_score_avg_and_total:
print("学号:{} 平均分:{} 总分:{}".format(item[0], item[1], item[2]))
students_sort_by_total_score = sort_students_by_total_score(dict)
print("按总分升序排列的学号列表:", students_sort_by_total_score)
```
输出结果如下:
```
每门成绩均大于等于85的学生的学号: ['02', '03']
每一个学号对应的平均分(sum和len)和总分:
学号:01 平均分:66.67 总分:200
学号:02 平均分:83.33 总分:250
学号:03 平均分:96.67 总分:290
学号:04 平均分:53.33 总分:160
学号:05 平均分:71.67 总分:215
学号:06 平均分:70.00 总分:210
按总分升序排列的学号列表: ['04', '01', '05', '06', '02', '03']
```
阅读全文