如何在 python 中按日期时间对列表进行排序?

How to sort a list by datetime in python?

我正在编写一个 .py 文件来按时间对列表进行排序,其中包含以下信息

date, time, emp_id, action_performed

在 Whosebug 上有人问过这个问题,但我不能完全理解(我是 python 的新手)

我还检查了排序函数和日期时间库,但无法正常工作。

list = 
[
('2017/09/10 13:19:38', 'employee_id', 'enrolled'),
('2017/09/10 12:15:21', 'employee_id', 'deleted'),
('2017/09/10 21:19:34', 'employee_id', 'enrolled'),
('2017/09/10 22:42:50', 'employee_id', 'deleted'),
('2017/09/10 16:53:03', 'employee_id', 'enrolled')
]

我只想知道先执行了哪个操作。 有人可以帮我吗?

试试这个:

sorted_list = sorted( list )

=)

from datetime import datetime
list = 
[
('2017/09/10 13:19:38', 'employee_id', 'enrolled'),
('2017/09/10 12:15:21', 'employee_id', 'deleted'),
('2017/09/10 21:19:34', 'employee_id', 'enrolled'),
('2017/09/10 22:42:50', 'employee_id', 'deleted'),
('2017/09/10 16:53:03', 'employee_id', 'enrolled')
]
sorted_list = sorted(list, key=lambda t: datetime.strptime(t[0], '%Y/%m/%d %H:%M:%S'))

使用 sorted 函数的 key 参数,在本例中,它告诉函数将每个元组的第一个元素解析为日期时间字符串,格式为 '%Y/%m/%d %H:%M:%S' 和使用该值进行排序。

在这种情况下,一个简单的 list.sort() 就地对列表进行排序,或者 sorted(list) returns 列表的排序副本可以完美地工作——只要日期和时间遵循 Y/M/D H/M/S.

要获取一行中第一个执行的操作,您可以使用:

first_action = sorted(list)[0]