如何在Python OOP类中筛选男性实例并计算其平均体重
计算男性平均体重的解决方案
首先,把所有创建好的Person实例统一放到一个列表中,方便批量处理。接着筛选出性别为Male的实例,提取他们的体重数据后计算平均值即可。
完整代码示例
class Person: def __init__(self, age, gender, height, weight): self.height = height self.weight = weight self.age = age self.gender = gender person1 = Person(19, "Female", 162, 63) person2 = Person(23, "Male", 170, 89) person3 = Person(34, "Male", 178, 88) person4 = Person(44, "Female", 169, 66) person5 = Person(23, "Female", 166, 64) person6 = Person(25, "Male", 180, 78) person7 = Person(18, "Female", 174, 70) person8 = Person(23, "Male", 190, 90) person9 = Person(34, "Female", 177, 72) person10 = Person(27, "Male", 187, 85) person11 = Person(22, "Male", 184, 80) person12 = Person(41, "Female", 158, 69) # 1. 收集所有Person实例到列表 people = [person1, person2, person3, person4, person5, person6, person7, person8, person9, person10, person11, person12] # 2. 筛选男性并提取体重 male_weights = [p.weight for p in people if p.gender == "Male"] # 3. 计算平均体重(避免无男性数据时除以0的错误) if male_weights: average_male_weight = sum(male_weights) / len(male_weights) print(f"男性平均体重: {average_male_weight:.2f}") else: print("没有男性数据")
代码说明
- 收集实例到列表:把分散的
person1到person12整合进列表people,简化遍历操作。 - 列表推导式筛选:通过
[p.weight for p in people if p.gender == "Male"]快速过滤出所有男性的体重,生成仅包含体重数值的列表。 - 计算平均值:用
sum()求体重总和,len()获取男性数量,两者相除得到平均值。加入判断是为了避免无男性数据时触发除以0的异常。
内容的提问来源于stack exchange,提问作者Полишук Макс
相关产品推荐
相关产品推荐

