现有一个成绩列表存放着学生的学号和成绩成绩列表里的3个数据分别是学生的语文、数学和英语成绩: 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]} 完成以下操作: ①编写函数,返回每门成绩均大于等于 85的学生的学号。 ②编写函数,返回每一个学号对应的平均分(sum和len)和总分(sum),结果保留两位小数。 ③ 编写函数,返回按总分升序排列的学号列表。
时间: 2024-02-15 18:02:31 浏览: 47
运用结构体数组与输入函数进行存放学生的学号姓名等数据
4星 · 用户满意度95%
好的,我来为您解答这些问题。
① 返回每门成绩均大于等于 85 的学生的学号:
```python
# 定义函数
def get_excellent_students(data):
excellent_students = [] # 存放每门成绩均大于等于 85 的学生的学号
for student, scores in data.items():
if all(score >= 85 for score in scores):
excellent_students.append(student)
return excellent_students
# 将数据传入函数并输出结果
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]}
print(get_excellent_students(dict)) # 输出 ['03']
```
② 返回每一个学号对应的平均分(sum 和 len)和总分(sum),结果保留两位小数:
```python
# 定义函数
def get_student_scores(data):
student_scores = {} # 存放每个学生的平均分和总分
for student, scores in data.items():
total_score = sum(scores)
avg_score = round(total_score / len(scores), 2)
student_scores[student] = (avg_score, total_score)
return student_scores
# 将数据传入函数并输出结果
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]}
print(get_student_scores(dict)) # 输出 {'01': (66.67, 200), '02': (83.33, 250), '03': (96.67, 290), '04': (53.33, 160), '05': (71.67, 215), '06': (70.0, 210)}
```
③ 返回按总分升序排列的学号列表:
```python
# 定义函数
def sort_student_by_score(data):
student_list = list(data.keys())
student_list.sort(key=lambda x: sum(data[x]))
return student_list
# 将数据传入函数并输出结果
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]}
print(sort_student_by_score(dict)) # 输出 ['04', '05', '01', '06', '02', '03']
```
阅读全文