python-在日期时按字典中的值排序

我是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函数,该函数以’/’分隔,将字符串转换为整数,并反转列表,因此月份优先于日期.

上一篇:python-如何在整个numpy矩阵中获取最大(顶部)N个值


下一篇:c#-Linq OrderBy()与List.Sort()的速度