如何在 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]
我正在编写一个 .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]