【发布时间】:2020-03-28 07:44:54
【问题描述】:
我有一个 list 和 dict 是这样的:
data = [{"uid": "a1", "name": "b1"},
{"uid": "a3", "name": "b3"},
{"uid": "a4", "name": "b4"},
{"uid": "a5", "name": "b5"}]
现在我想按照 uid 字段的顺序对 list 进行排序,如下所示:
uid_order = ['a1', 'a5', 'a3', 'a4']
这意味着输出应该是:
[{"uid": "a1", "name": "b1"},
{"uid": "a5", "name": "b5"},
{"uid": "a3", "name": "b3"},
{"uid": "a4", "name": "b4"}]
当然,我可以创建一个新的空 list,然后使用 2 个 for 循环来检查和添加每个元素,但是有什么优雅的方法(或更好的复杂性)来做到这一点?
【问题讨论】:
-
不,这个答案只有在
uid_order已经处于降序/升序时才有效 -
我明白了。糟糕的是,我在阅读问题时看到了我期望看到的内容,应该已经看到了您要求的特定顺序。将标题更新为“按非标准顺序对字典列表进行排序”可能会有所改进吗?如果他们有我认为的相同问题,其他人会更容易找到。
标签: python python-3.x sorting dictionary