在Python中,可以使用itertools.groupby()
函数按照另一个属性对对象进行分组,然后使用列表推导式和statistics.mean()
函数来找出属性的平均值。
以下是一个示例代码,假设有一个包含多个对象的objects
列表,每个对象都有两个属性:attribute1
和attribute2
。我们将按照attribute1
对对象进行分组,并计算每组中attribute2
的平均值。
import itertools
import statistics
# 示例对象列表
objects = [
{'attribute1': 'A', 'attribute2': 10},
{'attribute1': 'A', 'attribute2': 20},
{'attribute1': 'B', 'attribute2': 15},
{'attribute1': 'B', 'attribute2': 25},
{'attribute1': 'C', 'attribute2': 30},
]
# 按照attribute1对对象进行分组
grouped_objects = itertools.groupby(objects, key=lambda x: x['attribute1'])
# 找出每组中attribute2的平均值
averages = {key: statistics.mean([obj['attribute2'] for obj in group]) for key, group in grouped_objects}
# 输出结果
for key, average in averages.items():
print(f"Group '{key}': Average = {average}")
输出结果为:
Group 'A': Average = 15
Group 'B': Average = 20
Group 'C': Average = 30
这样,我们就成功按照attribute1
对对象进行了分组,并找出了每组中attribute2
的平均值。