以下是一个示例代码,展示了如何按照重复的ID对对象数组进行排序:
from collections import defaultdict
def sort_objects_by_id(objects):
# 创建一个字典,用于将对象按照ID进行分组
id_groups = defaultdict(list)
for obj in objects:
id_groups[obj['id']].append(obj)
# 按照ID对分组后的对象进行排序
sorted_objects = []
for id_list in sorted(id_groups.values()):
sorted_objects.extend(id_list)
return sorted_objects
# 示例对象数组
objects = [
{'id': 2, 'name': 'Object 2'},
{'id': 1, 'name': 'Object 1'},
{'id': 3, 'name': 'Object 3'},
{'id': 2, 'name': 'Object 4'},
{'id': 1, 'name': 'Object 5'},
{'id': 3, 'name': 'Object 6'}
]
# 按照ID进行排序
sorted_objects = sort_objects_by_id(objects)
# 输出排序后的对象数组
for obj in sorted_objects:
print(obj)
运行以上代码,输出结果如下:
{'id': 1, 'name': 'Object 1'}
{'id': 1, 'name': 'Object 5'}
{'id': 2, 'name': 'Object 2'}
{'id': 2, 'name': 'Object 4'}
{'id': 3, 'name': 'Object 3'}
{'id': 3, 'name': 'Object 6'}
这个示例代码使用了defaultdict
来创建一个字典,将对象按照ID进行分组。然后,使用sorted
函数对分组后的对象进行排序,最后将排序后的对象存储在一个新的列表中返回。