可以使用Python中的sorted函数来完成此操作。
假设我们有两个对象列表,我们称其为“obj_list”和“order_list”,并且每个对象都有一个“id”属性。
例如:
obj_list = [
{"id": 3, "name": "John"},
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
order_list = [
{"id": 2},
{"id": 1},
{"id": 3}
]
现在我们需要根据“order_list”中对象的顺序对“obj_list”进行排序,具体方法如下:
def sort_objects_by_order_list(obj_list, order_list):
order_dict = {obj["id"]: obj for obj in order_list}
sorted_list = sorted(obj_list, key=lambda obj: order_dict[obj["id"]])
return sorted_list
在这个函数中,我们首先将“order_list”转换为一个字典,其中键是每个对象的“id”,值是整个对象。例如:
order_dict = {
2: {"id": 2},
1: {"id": 1},
3: {"id": 3}
}
然后,我们使用sorted函数对“obj_list”进行排序,并使用“order_dict”字典中的对象作为排序标准。具体而言,我们通过lambda函数使用与每个对象的“id”相应的“order_dict”字典条目作为排序键。
在上述示例中,我们可以将sort_objects_by_order_list函数应用于示例对象列表和排序列表,如下所示:
sorted_list = sort_objects_by_order_list(obj_list, order_list)
print(sorted_list)
输出应为:
[
{"id": 2, "name": "Bob"},
{"id": 1, "name": "Alice"},
{"id": 3, "name": "John"}
]