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

Python循环与条件语句问题:无法统计CSV文件中指定单词次数

解决Python原生统计CSV指定列中单词出现次数的问题

原代码的核心问题

  • 错误复用计数器变量:你把初始值为0的loveCount直接赋值为歌曲标题字符串,彻底破坏了计数器的功能,后续的+=1操作逻辑完全错误
  • 未拆分歌曲标题的单词:仅判断整个标题是否等于'love',无法统计标题中多次出现的'love'(比如第三行的四个'love')
  • 大小写判断逻辑失效:虽然把标题转成了小写,但判断时仍用原字符串,没利用转小写后的结果实现不区分大小写的统计

修正后的代码

# 初始化计数器,用下划线命名更符合Python规范
love_count = 0

# 使用with语句安全打开文件,自动处理关闭
with open("love.csv", "r") as file:
    # 跳过表头行
    next(file)
    
    # 遍历文件每一行数据
    for line in file:
        # 去除换行符,按逗号分割成列列表
        line_list = line.strip("\n").split(",")
        # 获取第三列(索引2)的歌曲标题,统一转小写
        song_title = line_list[2].lower()
        # 按空格拆分标题为单个单词列表
        words = song_title.split()
        
        # 遍历每个单词,统计'love'的出现次数
        for word in words:
            if word == 'love':
                love_count += 1

# 输出最终统计结果
print(f"'love'出现的总次数: {love_count}")

关键修正点说明

  • with open(...):替代直接open(),无需手动关闭文件,避免资源泄漏
  • next(file):跳过CSV的表头行,防止统计无关内容
  • 双层循环:外层遍历CSV行,内层遍历歌曲标题的每个单词,确保每一个'love'都被计数
  • 统一转小写:将歌曲标题转为小写后再判断,实现不区分大小写的统计(比如'Love'、'LOVE'都会被识别)

运行以上代码,针对你的测试CSV数据,会输出'love'出现的总次数: 6,对应第二行1次、第三行4次、第一行歌曲标题里的1次,统计结果正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:46:05