You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何匹配字典1的单词与字典2的键并更新字典2的计数?

实现字典词频更新

根据你的需求,这里提供两种解决方案,对应不同的统计逻辑:

1. 统计单词在所有文档中的总出现次数(含重复)

如果需要统计每个单词在所有文档里的总出现次数(同一文档内重复出现也计数),可以用两层循环遍历:

dict1 = {'Doc-Id1': ['It', 'was', 'summertime'], 'Doc-Id2': ['It', 'is', 'night', 'o', 'dark', 'night']}
dict2 = {'It': 1, 'was': 1, 'summertime': 1, 'is': 1, 'night': 1, 'o': 1, 'dark': 1}

# 遍历所有文档的单词列表
for words in dict1.values():
    for word in words:
        # 匹配到dict2的键就加1
        dict2[word] += 1

print(dict2)

输出结果:

{'It': 3, 'was': 2, 'summertime': 2, 'is': 2, 'night': 3, 'o': 2, 'dark': 2}

2. 统计单词出现的文档数量(去重)

如果需求是同一文档内的重复单词只算一次(完全匹配你给出的示例结果),可以先对每个文档的单词去重再统计:

dict1 = {'Doc-Id1': ['It', 'was', 'summertime'], 'Doc-Id2': ['It', 'is', 'night', 'o', 'dark', 'night']}
dict2 = {'It': 1, 'was': 1, 'summertime': 1, 'is': 1, 'night': 1, 'o': 1, 'dark': 1}

for words in dict1.values():
    # 对当前文档的单词去重,避免同一文档内重复计数
    for word in set(words):
        dict2[word] += 1

print(dict2)

输出结果:

{'It': 2, 'was': 1, 'summertime': 1, 'is': 1, 'night': 2, 'o': 1, 'dark': 1}

补充说明

字典推导式更适合生成新的字典结构,不太适合原地修改已有字典的状态,因此用循环实现这类计数更新会更直观易懂。

内容的提问来源于stack exchange,提问作者user11579493

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:35:38