对元组列表中的日期时间对象进行排序

for*_*ret 2 python

我有一个元组列表,如下所示

[('John', datetime.datetime(2016, 11, 27, 18, 18), datetime.datetime(2017, 11, 27, 18, 18)), ('Adam', datetime.datetime(2017, 11, 27, 18, 18), datetime.datetime(2018, 11, 27, 18, 18), ('Adam', datetime.datetime(2001, 05, 27, 18, 18), datetime.datetime(2002, 09, 27, 18, 18)) ('Adam', datetime.datetime(2015, 11, 27, 18, 18), datetime.datetime(2016, 11, 27, 18, 18))]
Run Code Online (Sandbox Code Playgroud)

我如何根据日期时间对象对此列表进行排序,基本上其格式Name,From date, To date

Dan*_*ejo 5

只需使用排序key的参数:from_date

import datetime

data = [('John', datetime.datetime(2016, 11, 27, 18, 18), datetime.datetime(2017, 11, 27, 18, 18)),
        ('Adam', datetime.datetime(2017, 11, 27, 18, 18), datetime.datetime(2018, 11, 27, 18, 18)),
        ('Adam', datetime.datetime(2001,  5, 27, 18, 18), datetime.datetime(2002,  9, 27, 18, 18)),
        ('Adam', datetime.datetime(2015, 11, 27, 18, 18), datetime.datetime(2016, 11, 27, 18, 18))]


result = sorted(data, key=lambda x: x[1])

for e in result:
    print(e)
Run Code Online (Sandbox Code Playgroud)

输出

('Adam', datetime.datetime(2001, 5, 27, 18, 18), datetime.datetime(2002, 9, 27, 18, 18))
('Adam', datetime.datetime(2015, 11, 27, 18, 18), datetime.datetime(2016, 11, 27, 18, 18))
('John', datetime.datetime(2016, 11, 27, 18, 18), datetime.datetime(2017, 11, 27, 18, 18))
('Adam', datetime.datetime(2017, 11, 27, 18, 18), datetime.datetime(2018, 11, 27, 18, 18))
Run Code Online (Sandbox Code Playgroud)