解题思路:
利用嵌套列表字典将值存储好之后,使用python自带的itemgetter模块实现多关键字排序
注意事项:
题目中其他两个成绩是从大到小,而id是小的优先,顺序不一样,为了统一处理,我在赋值id的时候就让它的值反正赋值
比如如果是6个学生的话,id为1的我弄成5,4->2,3->3,2->4,1->5,这样就统一了大家的次序,观察可得他们之间的和是相等的,
所以只需要在最后输出的时候改为student+1-特殊改变的id,就可以还原回去
参考代码:
#奖学金
from operator import itemgetter student=int(input()) student_list=[] for n in range(student): dist={} list_score=list(map(int,input().split())) dist['all']=sum(list_score) dist['cn']=list_score[0] dist['id']=student-n student_list.append(dist) d=sorted(student_list,key=itemgetter('all','cn','id'),reverse=True) #sorted(student_list,key=attrgetter('all','cn','id')) for i in range(min(5,student)): print("{} {}".format((student+1)-d[i]['id'],d[i]['all']))
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:467 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:576 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:716 |
不会做的浏览:874 |
成绩转换 (C语言代码)浏览:1008 |
WU-格式化数据输出 (C++代码)浏览:1212 |
简单的a+b (C语言代码)浏览:817 |
星期判断机 (C语言代码)浏览:859 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:575 |