我有一个dicts列表和一个这样的列表:
dicts = [{"id": 1}, {"id": 4}, {"id": 7}, {"id": 0}]
ids = [7, 1, 0]
我想按照这样的顺序来判断订单的结果:
[{"id": 7}, {"id": 1}, {"id": 0}]
答案 0 :(得分:4)
id_dict = {d['id']: d for d in dicts}
print([id_dict[i] for i in ids])
如果ids
可能包含任何dict中没有的ID,只需添加一个条件:
[id_dict[i] for i in ids if i in id_dict]
答案 1 :(得分:0)
sorted(dicts, key = lambda item: ids.index(item['id']))
请注意,如果某个ID位于ids
列表中,则不会考虑这一点(因为您的数据会失败,因为列表中缺少4
)。
答案 2 :(得分:0)
你不能重新排列字典,因为它们是python中的映射类型对象,所以你可以做一件事,如果你想要按顺序打印字典项,那么你需要通过调用.values()
按降序排列值