0

ユーザーのリストがあります。各ユーザーにはwaitTime属性があります。waitTimeリスト内のすべてのユーザーの平均を取得するにはどうすればよいですか? 以下のコードはおそらく機能しますが、もっと良い方法があると思います。

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

2 に答える 2

6

これには、組み込みsum関数をジェネレーター式と組み合わせて使用​​できます。

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

これfloatは python2.x でのみ必要で、すべてのuser.waitTimeオブジェクトが整数である場合にのみ必要です。

于 2013-06-04T14:32:17.270 に答える
1

ジェネレーター式を使用しsumて合計する場合:

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

時間が整数の場合、結果を float に変換する必要がありますlen() 。そうしないと、整数の除算、つまり Python 2 での切り捨てが行われます。

于 2013-06-04T14:32:25.393 に答える