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

Python:基于双列表生成Metapher与Anker词频字典的问题求助

问题描述

我有两个列表wofo(存储词汇)和role(标记词汇是Metapher或Anker),比如wofo包含Lichtfiguren、nachhängt等,role对应Metapher、Anker等标记。需要生成两个字典,分别统计每个词汇作为Metapher和Anker的出现次数,但尝试了两种代码都得到空字典,求错误原因、修复方法、更简便实现及相关搜索关键词。


第一种代码的错误原因

  1. 变量拼写错误:循环里的elment应为element,导致无法正确匹配字典中的键。
  2. 多余的列表拆分:wofo和role已经是列表,调用split("\n")会报错(列表无split方法);若原数据是字符串,拆分后会破坏原有的一一对应关系,导致字典键值对不匹配。
  3. 遍历对象不匹配:循环遍历原列表wofo,但字典是用拆分后的wofo2生成的,两者元素不一致,导致dictionary.get(element)返回None,无法触发统计逻辑。

修复后的第一种代码

lemma_met = {}
lemma_ank = {}

# 直接用原列表生成一一对应的字典
word_role_dict = dict(zip(wofo, role))

for element in wofo:
    role_tag = word_role_dict.get(element)
    if role_tag == "Metapher":
        lemma_met[element] = lemma_met.get(element, 0) + 1
    elif role_tag == "Anker":
        lemma_ank[element] = lemma_ank.get(element, 0) + 1

第二种代码的错误原因

嵌套循环逻辑完全错误:外层遍历每个词汇,内层遍历所有标记,相当于每个词汇会和所有标记逐一匹配,完全忽略了wofo和role的一一对应关系,导致统计逻辑混乱,最终无法得到正确结果。

修复后的第二种代码

lemma_met = {}
lemma_ank = {}

# 同时遍历词汇和对应标记,保证一一对应
for word, tag in zip(wofo, role):
    if tag == "Metapher":
        lemma_met[word] = lemma_met.get(word, 0) + 1
    elif tag == "Anker":
        lemma_ank[word] = lemma_ank.get(word, 0) + 1

更简便的实现方式

方式一:用collections.defaultdict简化统计

from collections import defaultdict

lemma_met = defaultdict(int)
lemma_ank = defaultdict(int)

for word, tag in zip(wofo, role):
    if tag == "Metapher":
        lemma_met[word] += 1
    elif tag == "Anker":
        lemma_ank[word] += 1

# 可选:转为普通字典
lemma_met = dict(lemma_met)
lemma_ank = dict(lemma_ank)

方式二:用collections.Counter直接统计

from collections import Counter

# 筛选所有Metapher对应的词汇并统计
met_words = [word for word, tag in zip(wofo, role) if tag == "Metapher"]
lemma_met = Counter(met_words)

# 同理处理Anker
ank_words = [word for word, tag in zip(wofo, role) if tag == "Anker"]
lemma_ank = Counter(ank_words)

相关搜索关键词

  • Python 列表对应元素统计
  • Python 字典统计出现次数
  • Python zip 遍历对应元素
  • collections.defaultdict 用法
  • collections.Counter 统计词汇

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:26:26