春游冒险家


私信TA

用户名:uq_38530735968

访问量:372

签 名:

等  级
排  名 43956
经  验 337
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

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

  评论区

  • «
  • »