Pyt*_*ast 5 python sorting dictionary list
我有一份清单
order = [8, 7, 5, 9, 10, 11]
Run Code Online (Sandbox Code Playgroud)
和一个词典列表
list_of_dct = [{'value':11}, {'value':8}, {'value':5}, {'value':7}, {'value':10}, {'value':9}]
Run Code Online (Sandbox Code Playgroud)
我想list_of_dct按order列表中给出的顺序对此进行排序,即输出应如下:
list_of_dct = [{'value':8}, {'value':7}, {'value':5}, {'value':9}, {'value':10}, {'value':11}]
Run Code Online (Sandbox Code Playgroud)
我知道如何按给定排序key,但不知道订单已经给出.我怎么排序呢?
PS:我已经有了O(n ^ 2)解决方案.寻找更好的解决方案.
使用order列表的索引进行排序 - 只要尝试每个字典都有一个值,并且您希望按该值排序 -
sorted(list_of_dct,key=lambda x:order.index(x.values()[0]))
Run Code Online (Sandbox Code Playgroud)
但是,如果一个键有多个值,则更改[0]要排序的索引(即).