2 回答
TA贡献1847条经验 获得超7个赞
Counter是一个dict在这里有用的子类:
from collections import Counter
dicts = [dict1, dict2, dict3]
key_counters = [Counter(dictionary.keys()) for dictionary in dicts]
start_counter = Counter()
result_dict = sum(key_counters, start_counter)
assert result_dict == {'Association': 2, 'Rule': 2, 'Mining': 3}
TA贡献1744条经验 获得超4个赞
这可以通过dict理解轻松完成。
首先,从你的 dicts 中列出一个列表:
dict1 = {'Association':5,'Rule':2,'Mining':3}
dict2 = {'Rule':4,'Mining':1}
dict3 = {'Association':4,'Mining':3}
dicts = [dict1, dict2, dict3]
然后,将字典中的所有单词与一个并集组成一组(可能是一种更简洁的方法,但这很有效):
all_words = set().union(*[d.keys() for d in dicts])
然后,计算每个单词出现在多少个字典中:
{k: sum([1 for d in dicts if k in d.keys()]) for k in all_words}
这从您的示例返回了所需的输出。
添加回答
举报