2013-02-26 126 views
0

我有时间序列字典可用,我需要计算每个键的所有值,什么是最有效的方法来做到这一点?列表聚合列表的Python字典

DATA = {u'604 ':[[1361836800,{u'14885549':52,u'91478624 ':127,u'25581439':12,u'532617990' :4}],[ 1361833200,{u'14885549 ':38,u'91478624':204,u'25581439 ':14,u'40302362':5,u'532617990' :2}]]}

我试图这是在这里(这肯定是愚蠢的,但工程):

total = 0 
for i in DATA: 
    for j in DATA[i]: 
     for k in j[1]: 
      total += j[1][k] 

请帮忙吗?

回答

4

使用sum()与发电机:

total = sum(sum(inner[1].values()) for outer in DATA.values() for inner in outer) 

这行为等同于for循环如下:

total = 0 
for outer in DATA.values(): 
    for inner in outer: 
     total += sum(inner[1].values())