2012-06-08 46 views
4

我有字典建立的字典如下里面的元组值:的Python:如何访问一个词典的词典

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)} 
} 

我想找到获得在点的值的平均值的有效途径。即我想要得到的R点值(point.r)的平均水平 '项目3',这是(3.5 + 0.5)/ 2

感谢,

+2

请记住,如果您有像{和}这样的不平衡分隔符,则不需要反斜杠来继续行。 –

回答

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 # ??? 
+0

不错的一个,+1 :) –