复制
收藏
提问
简洁

假设你有一个包含多个子列表的列表,每个子列表代表一个学生的成绩记录,其中包含学生的姓名(字符串)和一系列课程成绩(整数)。例如: 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}]

56b6a1458
1个月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

学生成绩处理程序

  • 计算平均分:使用Python内置函数roundsum计算每位学生的平均成绩。
  • 筛选高分学生:通过设定阈值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)
你觉得结果怎么样?
如何计算列表中每个学生的平均成绩?
如何筛选出平均分高于85分的学生?
如何对筛选出的学生按平均分降序排序?
如何将学生姓名和平均分存储为字典?
如何使用Python打印排序后的学生名单和平均分?
如何保留计算平均分时的小数点后两位?

以上内容由AI搜集生成,仅供参考

在线客服