给定一个字典列表,我怎样才能找到每个键出现在多少个字典中?

我有一个列表,dictionaries每个dictionary都以单词为键,该单词在特定文档中出现的次数作为值。现在我想知道如何找到dictionaries一个特定单词出现了多少?


假设我有以下词典列表:


dict1 = {'Association':5, 'Rule':2, 'Mining':3}

dict2 = {'Rule':4, 'Mining':1}

dict3 = {'Association':4, 'Mining':3}

计算一个单词出现在多少词典后的结果:


result_dict = {'Association':2, 'Rule':2, 'Mining':3}


墨色风雨
浏览 96回答 2
2回答

aluckdog

Counter是一个dict在这里有用的子类:from collections import Counterdicts = [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}

慕无忌1623718

这可以通过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}这从您的示例返回了所需的输出。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python