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

Python统计CSV单词频率出现多余重复输出问题求解

12.9 LAB: Word frequencies (lists) 问题修复

需求说明

从CSV文本文件中区分大小写统计单词频率,要求每个单词仅在首次出现时打印单词及对应总出现次数,无重复输出。
示例场景:输入文件为input1.csv,文件内容为hello,cat,man,hey,dog,boy,Hello,man,cat,woman,dog,Cat,hey,boy,按规则输出对应统计结果即可。

错误原因

你的代码存在3处问题,其中第2点是多余输出的直接诱因:

  • lst.count()调用缺少必填参数,统计指定元素出现次数需要传入目标元素i,否则会直接触发参数不足的语法错误
  • 读取文件行内容时没有清理末尾的换行符,split后最后一个单词会携带\n,和前面的同名字符串被判定为不同元素,因此会额外触发打印逻辑,输出多余的boy 1
  • lst2.append(i)的缩进位置不合理,当前写在if分支外会导致lst2存入大量重复元素,虽然不影响输出结果但会降低判断效率,建议移至if分支内部,仅保存已经打印过的不重复单词

修改后代码

user = open(input())
# 读取行后用strip()去掉首尾空白字符(含换行符)
word = user.readline().strip()
lst = word.split(',')
lst2 = []
for i in lst:
    if i not in lst2:
        # 给count方法传入要统计的元素i
        print(i, lst.count(i))
        # append移至if分支内,仅存储已打印的不重复单词
        lst2.append(i)
user.close()

补充说明:你代码开头导入的csv模块没有用到,不需要可以删除;如果要遵循文件操作最佳实践,也可以用with语法自动关闭文件,避免资源泄漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:36:04