【问题标题】:average of attribute in a list of objects对象列表中属性的平均值
【发布时间】:2013-06-04 14:29:51
【问题描述】:

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

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

【问题讨论】:

    标签: python list attributes average


    【解决方案1】:

    您可以为此使用内置的sum 函数和生成器表达式。

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

    float 仅在 python2.x 中且仅当所有 user.waitTime 对象都是整数时才需要。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 2020-02-10
        • 2014-05-10
        相关资源
        最近更新 更多