2017-09-01 79 views
0

我有一个列表:排序基于布尔和日期时间列表值

[{'added_on': datetime.datetime(2017, 8, 30, 13, 1, 40, 84539, tzinfo=<UTC>), 
    'priority': False, 
    'userEmail': u'[email protected]', 
    'Id': 16123},...] 

我需要得到它整理出来,以便优先为真正的类型的字典应该顶部按时间倒序排列,其余名单在反向年代学中也是如此。

尝试:

List = sorted(List, key=lambda item: item['priority']) 
List = sorted(List, key=lambda item: item['added_on']) 

大干快上年代排序。

这是如何实现的。

感谢

回答

1

如果你要排序的多个谓词,你需要对元组sorted工作。

lst = sorted(List, key=lambda item: (item['priority'], -item['added_on'].timestamp())) 

第二个参数item['added_on'].timestamp()datetime对象转换为它的等效在历元,然后反转的符号,使它在对谓词反向排序。