假设我们有一个Person对象列表,其中每个对象都有一个“姓名”属性和一个“年龄”属性。我们想按照年龄将人员分组,并计算每个年龄组中人员的数量。
可以使用Python的defaultdict和Counter来解决这个问题。
from collections import defaultdict, Counter
# 创建一个Person对象列表
people = [
{'姓名': '张三', '年龄': 25},
{'姓名': '李四', '年龄': 30},
{'姓名': '王五', '年龄': 25},
{'姓名': '赵六', '年龄': 30},
{'姓名': '钱七', '年龄': 25},
]
# 创建一个defaultdict(Counter)对象
# 将“年龄”作为默认键,将一个Counter对象作为默认值
people_by_age = defaultdict(Counter)
# 在defaultdict中的Counter对象中增加每个年龄组的人员数量
for person in people:
age = person['年龄']
people_by_age[age]['count'] += 1
# 打印每个年龄组中人员的数量
for age, counts in people_by_age.items():
print(f"年龄为{age}的人员数量为{counts['count']}")
输出:
年龄为25的人员数量为3
年龄为30的人员数量为2
下一篇:按照对象的日期属性对数组进行排序