You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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,提问作者Полишук Макс

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 06:54:25