2012-06-08 85 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 :) –