题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
m, n = int(input()), int(input())
a = {}
f= {}
for i in range(m):
b, c = input().split()
e=b
while b in a.keys():
b += "00"
f[b] = e
a[b] = int(c)
if n == 1:
d=sorted(a.items(),key= lambda x:x[1])
else:
d = sorted(a.items(), key=lambda x: x[1],reverse=True)
for i in d:
print(f[i[0]],i[1])
谁说字典不行的,喵的,我双重字典。,我也不用字典values.append(),
7-10行,指的是,若发现了同名的人,直接在他的名字后面加一个00,然后做成一个字典,若没有同名,则键值对相同。
对保存成绩的字典排序,然后,在19行,输出时,(f[i[0]],i[1]),前一个时名字字典,后一个是成绩字典。
嘿嘿。
查看21道真题和解析