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

如何统计TXT文件每行单词出现次数:'union'匹配行数统计错误问题

错误原因

  • 统计包含union的行的判断逻辑错误:你写的if line == line.count('union')中,line是该行分割后的单词列表,line.count('union')返回的是该行union出现的次数(整数),列表和整数永远不可能相等,所以判断永远不成立,line_count始终为0。
  • 存在冗余的无效循环:最开始的for line in file_data:循环在你还未给file_data填充内容时就执行,无实际作用可以直接删除。
  • 统计总出现次数的循环变量命名有歧义:for word in file_data:里的word实际是每行的单词列表,命名容易造成逻辑混淆,建议调整为line更合适。

修正后的代码

# Iterate through file_data and 
# compute your counts in this cell
# ---------------------------------

file_data = []
with open('/dsa/data/all_datasets/hamilton-federalist-548.txt', 'r') as file:
    line_count = 0
    word_count = 0

# ------------ Add your code below --------------
    # 读取文件内容,把每行分割成单词列表存入file_data
    for line in file:
        line = line.strip()
        split_line = line.split(' ')
        file_data.append(split_line) 
    
    # 遍历每行统计数据
    for line in file_data:
        # 计算当前行union的出现次数
        union_cnt = line.count('union')
        # 只要出现次数大于0就说明该行包含union,行数加1
        if union_cnt > 0:
            line_count += 1
        # 总次数累加当前行的出现次数
        word_count += union_cnt

# ------------ =================== --------------

print('Lines: {}; Words: {}'.format(line_count, word_count))

修改说明

  • 调整行判断逻辑为判断当前行union出现次数是否大于0,符合统计包含目标单词行数的需求
  • 合并行统计和总次数统计的两次循环为一次,减少不必要的遍历,提升代码运行效率
  • 调整变量命名,避免逻辑歧义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 05:33:03