以下是一个示例代码,它展示了如何按对象列表分组,并将结果作为整数字典和对象列表返回:
from collections import defaultdict
def group_by_key(obj_list, key):
grouped_dict = defaultdict(list)
for obj in obj_list:
grouped_dict[obj[key]].append(obj)
grouped_list = list(grouped_dict.values())
return grouped_dict, grouped_list
# 示例使用:
students = [
{'name': 'Alice', 'age': 18},
{'name': 'Bob', 'age': 20},
{'name': 'Charlie', 'age': 18},
{'name': 'Dave', 'age': 20}
]
grouped_dict, grouped_list = group_by_key(students, 'age')
print(grouped_dict)
# Output: defaultdict(, {18: [{'name': 'Alice', 'age': 18}, {'name': 'Charlie', 'age': 18}], 20: [{'name': 'Bob', 'age': 20}, {'name': 'Dave', 'age': 20}]})
print(grouped_list)
# Output: [[{'name': 'Alice', 'age': 18}, {'name': 'Charlie', 'age': 18}], [{'name': 'Bob', 'age': 20}, {'name': 'Dave', 'age': 20}]]
在上述示例中,group_by_key
函数接受一个对象列表和一个键名作为参数。它使用defaultdict
创建一个空的列表字典grouped_dict
。然后,它迭代对象列表,并通过键名key
获取每个对象的键值。将对象添加到对应的列表中。最后,将结果作为整数字典grouped_dict
和对象列表grouped_list
返回。
上一篇:按对象键值对数组分组
下一篇:按对象内部的值对集合进行排序