使用列表理解将多个词典合并为一个统一的词典
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}
有一个对象,我们称它为 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}