我是python的新手,在练习时遇到问题.
用户将首先输入人数.然后他/她将输入姓名,然后输入生日.
例如,如果用法首先输入3,然后输入John,然后输入1/1
3表示用户将输入3个人的生日以及姓名和日期(格式:天/月)
然后,我被要求按升序对他们的出生日期进行排序.
例如,如果输入为3 John 12/6 Betty 1/5 Mike 16/1
它会输出
Mike 16/1
Betty 1/5
John 12/6
这是我手头上的东西,我只能想到将两个列表压缩到字典中.然后,我不知道如何进行下一步.
number = int(input())
a=[]
b=[]
for i in range(number):
m = input()
a.append(m)
n = input()
b.append(n)
dictionary = dict(zip(a,b))
print(dictionary)
解决方法:
您可以将sort与自定义函数结合使用,然后再进行for循环:
def sort_key(x):
return list(map(int, x[1].split('/')))[::-1]
res = sorted(dictionary.items(), key=sort_key)
for name, date in res:
print(name, date)
Mike 16/1
Betty 1/5
John 12/6
关键位是sort_key函数,该函数以’/’分隔,将字符串转换为整数,并反转列表,因此月份优先于日期.