ユーザーのリストがあります。各ユーザーにはwaitTime属性があります。waitTimeリスト内のすべてのユーザーの平均を取得するにはどうすればよいですか? 以下のコードはおそらく機能しますが、もっと良い方法があると思います。
sum = 0
for user in self.done:
sum += user.waitTime
sum/len(self.done)
ユーザーのリストがあります。各ユーザーにはwaitTime属性があります。waitTimeリスト内のすべてのユーザーの平均を取得するにはどうすればよいですか? 以下のコードはおそらく機能しますが、もっと良い方法があると思います。
sum = 0
for user in self.done:
sum += user.waitTime
sum/len(self.done)
これには、組み込みsum関数をジェネレーター式と組み合わせて使用できます。
sum(user.waitTime for user in self.done)/float(len(self.done))
これfloatは python2.x でのみ必要で、すべてのuser.waitTimeオブジェクトが整数である場合にのみ必要です。
ジェネレーター式を使用しsumて合計する場合:
sum(user.waitTime for user in self.done) / float(len(self.done))
時間が整数の場合、結果を float に変換する必要がありますlen() 。そうしないと、整数の除算、つまり Python 2 での切り捨てが行われます。