2013-06-04 33 views
0

我有一個用戶列表。每個用戶將具有waitTime屬性。我如何獲得列表中所有用戶的平均值waitTime?下面的代碼可能會工作,但我猜測有一個更好的方法來做到這一點。對象列表中屬性的平均值

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

回答

5

您可以使用內置sum函數結合發生器表達式。

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

float僅在python2.x必要的,只有當所有的user.waitTime對象是整數。

1

使用的總和發電機表達和sum

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

如果時間是整數,則需要將結果從len()成浮點轉換,否則你得到整數除法,即截斷在Python 2。