我想按列表键然后按日期对这个 dicts 列表进行排序。我正在尝试根据 label_order 按 'label' 对 dicts 进行排序,然后按降序对 'date' 进行排序。
label_order = [3, 4, 2, 1]
data = [
{'label': 1, 'data': 5, 'date': datetime(2018, 12, 31)},
{'label': 3, 'data': 2, 'date': datetime(2017, 12, 31)},
{'label': 3, 'data': 1, 'date': datetime(2018, 12, 31)},
{'label': 4, 'data': 3, 'date': datetime(2018, 12, 31)},
{'label': 4, 'data': 4, 'date': datetime(2018, 12, 25)},
]
排序后看起来像这样:
data = [
{'label': 3, 'data': 1, 'date': datetime(2018, 12, 31)},
{'label': 3, 'data': 2, 'date': datetime(2017, 12, 31)},
{'label': 4, 'data': 3, 'date': datetime(2018, 12, 31)},
{'label': 4, 'data': 4, 'date': datetime(2018, 12, 25)},
{'label': 1, 'data': 5, 'date': datetime(2018, 12, 31)},
]
我已经尝试过 lambda 表达式和 itemgetter,但是我很难为排序键组合正确的策略。也许它只是想一次做太多事情。
任何帮助或指导将不胜感激。
函数式编程
翻阅古今
相关分类