如何对字典中的日期和时间列表进行排序?

时间:2019-09-24 13:30:33

标签: python sorting dictionary

我有一本有3个键的字典,它们的值是日期和时间的列表。我正在尝试从最旧到最新的日期和时间列表进行排序,但我不确定如何对它们进行排序。有没有简单的方法和快速的方法来排序这些日期和时间列表?

commits_dict = {
    'Jordan McCullough': ['2014-11-07, 18:27:19', '2014-11-05, 20:00:35', '2014-11-05, 19:59:55'],
    'Peter Bell': ['2013-06-18, 19:34:38', '2014-11-05, 15:33:57'],
    'Matthew McCullough': ['2012-08-31, 20:35:43', '2012-08-31, 00:00:50', '2012-07-25, 05:25:20']
}

1 个答案:

答案 0 :(得分:2)

您可以将每个字符串的datetime值用作键,并按从最早到最新的顺序进行排序:

import datetime

commits_dict = {
    'Jordan McCullough': ['2014-11-07, 18:27:19', '2014-11-05, 20:00:35', '2014-11-05, 19:59:55'],
    'Peter Bell': ['2013-06-18, 19:34:38', '2014-11-05, 15:33:57'],
    'Matthew McCullough': ['2012-08-31, 20:35:43', '2012-08-31, 00:00:50', '2012-07-25, 05:25:20']
}


def key(s):
    return datetime.datetime.strptime(s, '%Y-%m-%d, %H:%M:%S')


result = {k: sorted(v, key=key) for k, v in commits_dict.items()}

print(result)

输出

{'Jordan McCullough': ['2014-11-05, 19:59:55', '2014-11-05, 20:00:35', '2014-11-07, 18:27:19'], 'Peter Bell': ['2013-06-18, 19:34:38', '2014-11-05, 15:33:57'], 'Matthew McCullough': ['2012-07-25, 05:25:20', '2012-08-31, 00:00:50', '2012-08-31, 20:35:43']}