我有一个列表,其中的键是日期,值是当天样本的小时
dtlist = [{'26/12/2010','01'},{'27/3/2008','00'},{'7/7/2007','10'},{'7/7/2007','23'}]
我应该得到的输出是
dtlist= [{'7/7/2007','10'},{'7/7/2007','23'},{'27/3/2008','00'},{'26/12/2010','01'}]
我希望按日期,月份,日期和日期按递增顺序逐个排序日期。非常感谢。
答案 0 :(得分:1)
你有一个无序集合的列表。我假设您确实想要使用其他内容,例如列表列表或元组列表。
以下是如何使用列表列表或元组列表来完成的:
a = [['26/12/2010','01'],['27/3/2008','00'],['7/7/2007','10'],['7/7/2007','23']]
def k(a):
d = list(map(int, a[0].split("/")))
return d[::-1] + [int(a[1])]
print(sorted(a, key=k))
输出: [[' 7/7/2007',' 10'],[' 7/7/2007',' 23'],[ ' 27/3/2008',' 00'],[' 26/12 / 2010',' 01']]
key
函数返回列表中项目的键,然后排序函数使用该键对列表进行排序。
在此示例中,输入数据对应于以下键:
items: [['7/7/2007', '10'], ['7/7/2007', '23'], ['27/3/2008', '00'], ['26/12/2010', '01']]
keys: [[2007, 7, 7, 10], [2007, 7, 7, 23], [2008, 3, 27, 0], [2010, 12, 26, 1]]
我们按年份排序,然后是月份,接着是白天,最后是小时。