题解 | #成绩排序#

成绩排序

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
全部评论

相关推荐

点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务