我有一个清单:
[{'added_on': datetime.datetime(2017, 8, 30, 13, 1, 40, 84539, tzinfo=<UTC>),
'priority': False,
'userEmail': u'xxx@yyy.com',
'Id': 16123},...]
我需要对它进行整理,使得优先级为True的dicts应按逆时间顺序排在列表之上,其余的则按逆时间顺序排列。
尝试:
List = sorted(List, key=lambda item: item['priority'])
List = sorted(List, key=lambda item: item['added_on'])
按时间顺序排序。
如何实施。
由于
答案 0 :(得分:2)
如果您要对多个谓词进行排序,则需要sorted
处理元组。
lst = sorted(List, key=lambda item: (item['priority'], -item['added_on'].timestamp()) )
第二个参数item['added_on'].timestamp()
表示将datetime
对象转换为其在epoch中的等效对象,然后反转符号,以便在该谓词上反向排序。