ユーザーのリストがあります。各ユーザーには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 での切り捨てが行われます。