对象列表中的属性的平均值

时间:2013-06-04 14:29:51

标签: python list attributes average

我有一个用户列表。每个用户都有waitTime属性。如何获取列表中所有用户的平均值waitTime?下面的代码可能会有效,但我猜测有更好的方法。

sum = 0
for user in self.done:
    sum += user.waitTime 
sum/len(self.done)

2 个答案:

答案 0 :(得分:5)

您可以将内置sum函数与生成器表达式结合使用。

sum(user.waitTime for user in self.done)/float(len(self.done))

float仅在python2.x中是必需的,并且仅当所有user.waitTime个对象都是整数时才有效。

答案 1 :(得分:1)

使用生成器表达式和sum求和:

sum(user.waitTime for user in self.done) / float(len(self.done))

如果时间是整数,则需要将结果从len()转换为float,否则会得到整数除法,即在Python 2中截断。