给定一个字典列表,如何找到每个键出现在其中的字典数?

2024-09-28 15:34:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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}

Tags: 文档列表dictionary关键字result单词rule次数
2条回答

^{}是一个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}

这可以通过听写理解轻松完成。
首先,列出你的口述:

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}

这将从示例中返回所需的输出。你知道吗

相关问题 更多 >