复制
收藏
提问
简洁
假设你有一个包含多个子列表的列表,每个子列表代表一个学生的成绩记录,其中包含学生的姓名(字符串)和一系列课程成绩(整数)。例如: student_records = [ ["Alice", 85, 92, 78, 88], ["Bob", 70, 85, 90, 70], ["Charlie", 92, 98, 85, 95], ["David", 68, 72, 85, 65], ["Eve", 88, 92, 88, 90] ] 你的任务是编写一个Python程序,完成以下功能: 计算每个学生的平均分:为每个学生计算其所有课程的平均分(保留两位小数)。 筛选高分学生:找出平均分高于或等于85分的学生,并将他们的姓名和平均分以字典的形式存储在一个新列表中。 排序:根据平均分(降序)对上述筛选出的学生进行排序。 输出结果:打印出排序后的学生名单及其平均分。 示例输出 复制 [{'name': 'Charlie', 'average': 92.50}, {'name': 'Eve', 'average': 89.50}, {'name': 'Alice', 'average': 85.75}]
1个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
学生成绩处理程序
- 计算平均分:使用Python内置函数
round
和sum
计算每位学生的平均成绩。 - 筛选高分学生:通过设定阈值85分,筛选出符合条件的学生。
- 排序学生:根据平均分降序排列学生。
- 输出结果:打印排序后的学生名单和平均分。
student_records = [
["Alice", 85, 92, 78, 88],
["Bob", 70, 85, 90, 70],
["Charlie", 92, 98, 85, 95],
["David", 68, 72, 85, 65],
["Eve", 88, 92, 88, 90]
]
# 计算平均分并筛选高分学生
high_score_students = []
for student in student_records:
name, *grades = student
average = round(sum(grades) / len(grades), 2)
if average >= 85:
high_score_students.append({'name': name, 'average': average})
# 根据平均分降序排序
high_score_students.sort(key=lambda x: x['average'], reverse=True)
# 输出结果
print(high_score_students)
你觉得结果怎么样?