必答 简答题 给定一个学生成绩列表grades其中每一项为学号和3门课程成绩组成的四元组。示例代码如下:grades = 202001859273 202002687053 202003725877 202004958991 202005657289要求:按照总成绩从高到底排序打印输出如下图所示:202004 95 89 91 275 202001 85 92 73 250 20200
解题思路:
首先需要计算每个学生的总成绩,并将总成绩作为一个新的键值对添加到每个元组中。然后使用sorted方法按照总成绩进行排序,并使用for循环打印输出。
代码实现:
grades = [ ('202001',85,92,73), ('202002',68,70,53), ('202003',72,58,77), ('202004',95,89,91), ('202005',65,72,89) ]
计算总成绩并添加到每个元组中
for i in range(len(grades)): total = sum(grades[i][1:]) grades[i] = grades[i] + (total,)
按照总成绩进行排序
sorted_grades = sorted(grades, key=lambda x: x[4], reverse=True)
打印输出
for grade in sorted_grades: print(grade[0], grade[1], grade[2], grade[3], grade[4]
原文地址: https://www.cveoy.top/t/topic/cjny 著作权归作者所有。请勿转载和采集!