以下是一个示例代码,演示了如何使用自动映射器来按照特定的键值进行分组汇总。
from collections import defaultdict
# 定义一个自动映射器,默认值为列表
mapper = defaultdict(list)
# 假设有一个包含多个字典的列表
data = [
{'name': 'Alice', 'age': 25, 'gender': 'female'},
{'name': 'Bob', 'age': 30, 'gender': 'male'},
{'name': 'Charlie', 'age': 35, 'gender': 'male'},
{'name': 'David', 'age': 40, 'gender': 'male'},
{'name': 'Eve', 'age': 25, 'gender': 'female'}
]
# 使用自动映射器进行分组汇总
for item in data:
age = item['age']
mapper[age].append(item)
# 打印分组结果
for age, items in mapper.items():
print(f"Age {age}:")
for item in items:
print(f" {item['name']} ({item['gender']})")
运行以上代码,将会得到以下输出:
Age 25:
Alice (female)
Eve (female)
Age 30:
Bob (male)
Age 35:
Charlie (male)
Age 40:
David (male)
上述代码使用defaultdict
来创建一个自动映射器,其默认值为一个空列表。然后,遍历数据列表,将每个字典按照指定的键值进行分组,并将其添加到自动映射器中的适当列表中。最后,打印出每个分组的结果。