【发布时间】:2016-05-06 19:38:59
【问题描述】:
我有一个清单
order = [8, 7, 5, 9, 10, 11]
还有一个字典列表
list_of_dct = [{'value':11}, {'value':8}, {'value':5}, {'value':7}, {'value':10}, {'value':9}]
我想按照order 列表中给出的顺序对这个list_of_dct 进行排序,即输出应该如下:
list_of_dct = [{'value':8}, {'value':7}, {'value':5}, {'value':9}, {'value':10}, {'value':11}]
我知道如何按给定的key 排序,但不是在已经下达订单时。如何排序?
PS:我已经有一个 O(n^2) 的解决方案。寻找更好的解决方案。
【问题讨论】:
-
对于列表中的所有字典,键
value是静态的还是只是一个占位符?此外,order列表是否包含字典中存在的所有项目,即重复项? -
与其执行一般排序,不如构建一个包含值作为键的
dict,然后从中按顺序提取条目会更有效。问题:(1)order中的每个值是否已知作为list_of_dct中的值存在? (2)list_of_dct中同一个值可以出现多次吗?
标签: python list sorting dictionary