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

循环重置列表异常:Python提取comments中tfidf匹配词问题排查

按句子提取匹配词并分列表存储的代码修正

问题根源

原代码的问题出在两个地方:

  • lis2 在循环外面初始化,所有句子的匹配词都堆进同一个列表,没法按句子拆分
  • 把 lis2 加入 lis1 的操作放在了整个循环结束后,只执行一次,最后所有结果都挤在一个子列表里

修正后的代码

lis1 = []
for cm in comments:
    lis2 = []  # 每处理一个句子就重置lis2
    sp = cm.split()
    for s in sp:
        # 直接判断词是否在tfidf列表里,比嵌套循环更简洁高效
        if s in tfidf:
            lis2.append(s)
    lis1.append(lis2)  # 处理完当前句子就把结果存入lis1

print(lis1)            
data = pd.DataFrame(lis1)

关键改动说明

  1. 重置lis2的时机:把 lis2 = [] 移到外层循环内部,保证每个句子都从空列表开始收集匹配词
  2. 及时存入结果:将 lis1.append(lis2) 放到外层循环里,每处理完一个句子就立即把该句子的匹配词列表加入lis1
  3. 优化匹配逻辑:原代码用嵌套循环遍历tfidf做匹配,改成直接用 s in tfidf 更简洁。如果tfidf数据量较大,建议转成集合 tfidf_set = set(tfidf),这样判断成员的效率会从O(n)提升到O(1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:36:18