要按n个条件对集合进行分组,可以使用Python中的groupby函数。groupby函数可以根据指定的条件对一个可迭代对象进行分组。下面是一个示例代码:
from itertools import groupby
def group_by_conditions(data, conditions):
grouped_data = {}
for key, group in groupby(data, lambda x: tuple(x[c] for c in conditions)):
if key not in grouped_data:
grouped_data[key] = []
grouped_data[key].extend(list(group))
return grouped_data
# 示例数据
data = [
{'name': 'Alice', 'age': 25, 'gender': 'female'},
{'name': 'Bob', 'age': 30, 'gender': 'male'},
{'name': 'Charlie', 'age': 25, 'gender': 'male'},
{'name': 'Diana', 'age': 30, 'gender': 'female'},
]
# 按年龄和性别进行分组
conditions = ['age', 'gender']
result = group_by_conditions(data, conditions)
print(result)
输出结果为:
{(25, 'female'): [{'name': 'Alice', 'age': 25, 'gender': 'female'}], (30, 'male'): [{'name': 'Bob', 'age': 30, 'gender': 'male'}], (25, 'male'): [{'name': 'Charlie', 'age': 25, 'gender': 'male'}], (30, 'female'): [{'name': 'Diana', 'age': 30, 'gender': 'female'}]}
这里使用lambda函数来生成分组的key,根据指定的条件将数据进行分组。最后将分组结果存储在字典中,并返回。
上一篇:按内置属性代码搜索主数据服务成员
下一篇:按n个字符分割字符串的for循环