输入n个同学的姓名和年龄,将年龄从大到小排序,当年龄相同时按照姓名字典序排序

题目

输入n个同学的姓名和年龄,将年龄从大到小排序,当年龄相同时按照姓名字典序排序

输入

第一行一个整数n
第二行到n+1行,每行一个同学的信息。姓名和年龄用空格隔开

输出

n行,排序结果

样例输入

4
yrgA 21
yrgB 21
zcSmart 22
zcHandsome 22

样例输出

zcHandsome 22
zcSmart 22
yrgA 21
yrgB 21

解法

length = int(input())
dic = {
    
    }
i = 0
while i < length:
    name, age = map(str, input().split())
    dic[name]=age
    i += 1
    
L = sorted(dic.items(), key=lambda x:(-int(x[1]),x[0]))  
# x[1]对应第二个参数,即年龄,加负号表示倒序,x[1]放在x[0]前面表示先对年龄倒序排序,只有年龄相同时才对姓名排序
for i in L:
        print (i[0],i[1])

猜你喜欢

转载自blog.csdn.net/azzin/article/details/121367742