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

Merge multiple dictionaries into unified one using list comprehension

有一个对象,我们称它为 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', 1), ('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}