题解 | #成绩排序#
成绩排序
http://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
1.一开始根据字典写的,结果有重名过不了
2.遍历排序后的成绩列表,获得原列表中该成绩的索引,再替换该值(避免成绩相同情况)
3.因为根据成绩列表的索引取姓名,所以不用考虑重名的情况
try:
A=int(input())
B=int(input())
C=[input().split() for i in range(A)]
list1=[]
list2=[]
for i in C:
list1.append(int(i[1]))#原成绩列表
list2.append(i[0]) #原学生姓名列表--成绩列表和姓名列表,索引相同姓名和成绩相对
if B==0:
list3=sorted(list1,reverse=True)
if B==1:
list3=sorted(list1,reverse=False) #排序后的成绩列表
for i in list3:
print(list2[list1.index(i)],end=" ")#找该成绩在原成绩列表的索引,对应输出姓名
print(i)
list1[list1.index(i)]="null" #将找到的成绩替换成其他
except:
break