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}
這從您的示例返回了所需的輸出。
添加回答
舉報