下面是一个示例代码,演示如何按照多个条件分组的函数。
def group_by_multiple_conditions(data, conditions):
groups = {}
for item in data:
key = tuple(item.get(condition) for condition in conditions)
if key not in groups:
groups[key] = []
groups[key].append(item)
return groups
# 示例数据
data = [
{'name': 'Alice', 'age': 25, 'gender': 'female'},
{'name': 'Bob', 'age': 30, 'gender': 'male'},
{'name': 'Charlie', 'age': 25, 'gender': 'male'},
{'name': 'Dave', 'age': 35, 'gender': 'male'},
{'name': 'Eve', 'age': 30, 'gender': 'female'},
{'name': 'Frank', 'age': 25, 'gender': 'male'}
]
# 按照年龄和性别分组
conditions = ['age', 'gender']
result = group_by_multiple_conditions(data, conditions)
# 输出结果
for key, group in result.items():
print(key, group)
输出结果为:
(25, 'female') [{'name': 'Alice', 'age': 25, 'gender': 'female'}]
(30, 'male') [{'name': 'Bob', 'age': 30, 'gender': 'male'}]
(25, 'male') [{'name': 'Charlie', 'age': 25, 'gender': 'male'}, {'name': 'Frank', 'age': 25, 'gender': 'male'}]
(35, 'male') [{'name': 'Dave', 'age': 35, 'gender': 'male'}]
(30, 'female') [{'name': 'Eve', 'age': 30, 'gender': 'female'}]
在这个示例中,我们定义了一个名为group_by_multiple_conditions
的函数,它接受一个数据列表和一个条件列表作为参数。函数使用一个字典来存储分组结果,其中键是由条件值组成的元组,值是符合条件的项的列表。
然后,我们提供了一个示例数据列表和一个条件列表。调用group_by_multiple_conditions
函数,并将结果存储在result
变量中。
最后,我们遍历result
字典,并打印每个分组的键和对应的项列表。