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

如何统计术语在字典各值列表中的出现次数(单列表不重复计数)

原有代码问题

你给出的代码存在核心逻辑缺陷:没有遍历每个值列表内的单词,直接引用了未定义的word变量,无法完成统计逻辑。

高效实现方案

采用单轮遍历+临时去重集合的方案即可满足需求,内存开销仅和单个列表的最大去重单词数挂钩,完全可以支撑超大体量的字典,实现代码如下:

from collections import defaultdict

# 初始化频率字典,缺省值为0
freq_dict = defaultdict(int)
# 注意不要用dict作为变量名,会覆盖Python内置的dict类,此处替换为你实际的原字典变量名
for _, word_list in your_original_dict.items():
    # 临时集合仅记录当前列表已统计过的单词,处理完当前列表后自动释放
    current_seen = set()
    for word in word_list:
        if word not in current_seen:
            current_seen.add(word)
            freq_dict[word] += 1

方案说明

  • 相比提前把所有值列表转set存储的方案,该方案不会一次性加载所有去重后的单词到内存,峰值内存仅和单个最长列表的去重单词量挂钩,内存开销低几个数量级
  • 时间复杂度和全量遍历所有单词的时间一致,额外的集合查询、插入操作均为O(1)均摊复杂度,不会带来明显的性能损耗
  • 天然解决了同一个列表内单词重复出现导致的重复计数问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:45:05