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

Python脚本更新:统计列表中唯一单词在文本行的出现次数总和

解决思路与代码修改

我明白你要做的改动了——原来的脚本只要目标列表里的任意人员出现在行内,就写入1标记存在性,现在需要统计这些人员在该行的总出现次数(包括同一人多次出现的情况)对吧?

先分析下原代码的问题:原逻辑是遍历到第一个匹配的staff就写入1并break,所以只会记录「是否存在」,而不会统计次数,更不会累加多个人员的出现次数。

下面是修改后的代码片段,替换你原来的循环部分即可:

elif 'SCHOOL' in line:
    csvfile.write(str(line.count(',') + 1) + ',')
    # 初始化总次数为0
    total_occurrences = 0
    # 遍历所有目标人员,累加每个人的出现次数
    for staff in ess:
        total_occurrences += line.count(staff)
    # 将总次数写入csv
    csvfile.write(str(total_occurrences))
    # 原来的flag和break逻辑可以完全删掉了

改动说明:

  • 去掉了flag变量和break语句:现在需要遍历所有ess里的人员,不能找到第一个匹配项就停止
  • 新增total_occurrences变量:用来累加每个目标人员在当前行的出现次数
  • 最终写入总次数的字符串形式:比如行内是"jim,jim,bob,alice",ess里的jim出现2次、bob出现1次,总次数就是3,脚本会写入3;如果没有任何目标人员出现,就写入0

举个实际例子验证:
假设line = "SCHOOL,jim,jim,bob,sally,tom,tom",ess = ['jim','bob','sally','tom']

  • jim出现2次,bob1次,sally1次,tom2次
  • 总次数就是2+1+1+2=6,脚本会写入6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:44:51