尝试在类中创建一个方法来计算python中人员列表的平均年龄

2024-05-23 14:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个类中创建一个方法来计算python中列表的平均年龄。 基本上,假设我有一个名为peoplelist的不同的人的列表,peoplelist中的每个人都有一个格式(height,age,gender),例如person1=1.77,27,m。我需要得到列表中每个人年龄的总和,然后除以列表的长度,然后返回结果。 到目前为止,我已经:

def __len__(self):
    return len(self.peoplelist)

def __age__(self):
    agesum = 0
    for value in self.peoplelist:
        agesum = agesum + value.age
        print(agesum)
    return agesum/len(self.peoplelist)

但这似乎不起作用,任何帮助或解释为什么这不起作用将不胜感激。在


Tags: 方法self列表agelenreturnvaluedef
3条回答

假设value.age返回正确的值,下面的方法应该可以工作。。。在

def __age__(self):
    agesum = 0
    for value in self.peoplelist:
        agesum = agesum + value.age
    return agesum / len(self.peoplelist)

如果没有,就必须在原始问题中包含如何调用函数的代码。在

您可以使用sum()函数:

def age(self):
    return sum(p.age for p in self.peoplelist) / float(len(self.peoplelist))

注意在Python2中,float();在默认情况下,对整数进行除法得到floor除法(向下取整)。或者,在python代码的顶部添加from __future__ import division,以启用浮点除法。在

注意,我将方法命名为.age();仅对special method names使用双下划线名称(“dunder”)。在

如果你个人列表如下所示:

[(1.77, 27, 'm'), ...]

那么,以下内容应该起作用:

^{pr2}$

相关问题 更多 >