使用列表理解将多个字典合并为一个统一的字典

问题描述

一个对象,我们称它为 instance_list,其中包含一个包含单词及其出现次数的字典(称为 feature_counts)。我想将所有这些词典合二为一。 到目前为止,我已经创建了这样的列表理解

print("List:",[inst.feature_counts.items() for inst in self.instance_list])

并得到以下列表:

[dict_items([('deal',1),('lottery',3)]),dict_items([('lottery',2)]),dict_items([('deal',1)]),dict_items([('green',('eggs',1)])]

预期的输出是这样的:

{'deal':2,'lottery':5,'green':1,'eggs':1}

如何将我的列表理解转换为最终的字典?

解决方法

如果您的 self.instance_list 是字典列表,您可以:

out = {}
for inst in self.instance_list:
    for k,v in inst.items():
        out.setdefault(k,0)
        out[k] += v

print(out)

打印:

{'deal': 2,'lottery': 5,'green': 1,'eggs': 1}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...