解题思路:
利用嵌套列表字典将值存储好之后,使用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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论