4

私は次のようにdictセットアップのdictを持っています:

from collections import namedtuple

Point = namedtuple('Point', 'r w')
mydict= {
    'user1': {'item1': Point(2.5,0.1),'item2': Point(3.5,0.6)},
    'user2': {'item1': Point(3.0,0.3), 'item3': Point(3.5,0.8)},
    'user3': {'item1': Point(2.0,0.4),'item3': Point(0.5,0.1), 'item4': Point(1.5,0.7)}
}

ポイントの値の平均を取得する効率的な方法を見つけたいと思います。つまり、(3.5 + 0.5)/ 2である'item3'のrポイント値(point.r)の平均を取得したい

ありがとう、

4

1 に答える 1

7

あなたはこのようにそれを行うことができます:

r_vals = [u['item3'].r for u in mydict.itervalues() if 'item3' in u]
if r_vals:
   r_avg = sum(r_vals)/len(r_vals)
else:
   r_avg = 0   # ???
于 2012-06-08T22:19:32.877 に答える