计算总值dict

时间:2016-09-26 21:14:44

标签: python dictionary tf-idf

我有一个问题,如何计算相同键的总字数?我有一个字典:

{'learning': {'DOC1': 0.14054651081081646,
              'DOC2': 0,
              'DOC3': 0.4684883693693881},
 'life':     {'DOC1': 0.14054651081081646, 
              'DOC2': 0.20078072972973776, 
              'DOC3': 0}
}

我希望结果为:

{'learning life': {
        'DOC1': DOC1 in learning + DOC1 in life,
        'DOC2': DOC2 in learning + DOC2 in life,
        'DOC3': DOC3 in learning + DOC3 in life,}}

非常感谢

2 个答案:

答案 0 :(得分:1)

非常简单:

for k in d['learning']:
    print(d['learning'][k] + d['life'][k])

... d是您的dict并且没有任何错误检查(密钥是否存在,是否真的是数字等)。

<小时/> 作为完整的代码片段,理解为:

d = {'learning': {'DOC1': 0.14054651081081646,
              'DOC2': 0,
              'DOC3': 0.4684883693693881},
 'life':     {'DOC1': 0.14054651081081646, 
              'DOC2': 0.20078072972973776, 
              'DOC3': 0}
}

d['sum'] = [d['learning'][k] + d['life'][k]
            for k in d['learning']]
print(d)

请参阅a demo on ideone.com

答案 1 :(得分:0)

您可以使用字典理解来添加嵌套在字典d中的所有数字,如下所示:

totals = {k: sum(v.get(k, 0) for v in d.values()) for k in d.values()[0]} # dict of totals