以下是一个使用Python的示例代码来按属性对对象进行分组,并计算每个键的对象属性的平均值:
from collections import defaultdict
# 定义一个对象类
class MyObject:
def __init__(self, name, attribute):
self.name = name
self.attribute = attribute
# 创建一些示例对象
objects = [
MyObject("obj1", 10),
MyObject("obj2", 20),
MyObject("obj3", 10),
MyObject("obj4", 30),
MyObject("obj5", 20)
]
# 使用defaultdict创建一个空列表作为默认值
groups = defaultdict(list)
# 按属性对对象进行分组
for obj in objects:
groups[obj.attribute].append(obj)
# 计算每个键的对象属性的平均值
averages = {}
for attribute, objs in groups.items():
total = sum(obj.attribute for obj in objs)
count = len(objs)
averages[attribute] = total / count
# 打印结果
for attribute, average in averages.items():
print("Attribute:", attribute)
print("Average:", average)
运行上述代码会输出以下结果:
Attribute: 10
Average: 10.0
Attribute: 20
Average: 20.0
Attribute: 30
Average: 30.0
这个示例代码首先定义了一个MyObject
类,该类具有name
和attribute
属性。然后,我们创建了一些示例对象,并使用defaultdict
创建了一个空列表作为默认值。
接下来,我们遍历每个对象,并将其添加到对应属性的组中。然后,我们计算每个键的对象属性的平均值,并将结果存储在一个字典中。
最后,我们打印出每个属性的平均值。