代码展示:
N = eval(input())
rankDict = {}
for i in range(N):
id, score, school = input().split()
score = int(score)
school = school.lower()
if id[0]=='B':
score = (score/1.5)
elif id[0]=='A':
pass
elif id[0]=='T':
score = (score*1.5)
lis = rankDict.get(school,[0,0]) # 总分, 考生人数
lis[0] = lis[0]+score
lis[1] = lis[1]+1
rankDict[school] = lis
ranklist = list(rankDict.items())
# print(ranklist)
# [('au', [216, 3]), ('lanx', [99, 2]), ('cmu', [159, 2]), ('hypu', [69, 2]), ('pku', [100, 1])]
ranklist.sort(key=lambda x:x[0])
ranklist.sort(key=lambda x:x[1][1])
ranklist.sort(key=lambda x:int(x[1][0]),reverse=True)
unit_num = len(rankDict)
print(unit_num)
# 排名 学校 加权总分 考生人数
rank, scorePre = 0, -1
for id,(school,info) in enumerate(ranklist):
score, num = info
score = int(score)
if score != scorePre:
rank = id +1
scorePre = score
print(rank, school, score, num)
测评结果: