You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修改Python代码统计文本文件的单词、空格及换行符频次

解决方法:统计空格和换行符的字符频次

当然可以搞定这个问题!你当前代码里的line.split()是“罪魁祸首”——这个方法会把空格、换行这类空白字符当成分隔符直接跳过,所以它们根本没机会进入统计流程。我们只需要调整遍历逻辑,直接处理文件里的每一个字符,就能把空格(' ')和换行符(\n)都纳入统计了。

修改后的完整代码

下面是优化后的代码,同时保留了你原本提取单词的需求,并且用更安全的文件处理方式:

word_list = []
frequency = {}

# 使用with语句自动管理文件生命周期,避免忘记关闭文件
with open(file_name, 'r') as file:
    for line in file:
        # 遍历当前行的每一个字符(包括空格、换行符)
        for char in line:
            # 用字典get方法简洁更新计数,不存在的字符默认计数0
            frequency[char] = frequency.get(char, 0) + 1
        
        # 保留原逻辑:提取单词到列表
        word_list.extend(line.split())

# 打印结果示例
print("提取的单词列表:")
print(word_list)
print("\n字符频次统计(含空格、换行):")
for char, count in sorted(frequency.items()):
    # 对换行符做特殊显示,方便查看
    display_char = '\\n' if char == '\n' else char
    print(f"'{display_char}': {count}")

关键改动说明

  • 去掉split()的字符过滤:直接遍历line的每个字符,这样空格、换行符都会被处理到
  • 安全的文件处理:用with语句打开文件,不用手动调用close(),避免资源泄漏
  • 更简洁的计数逻辑:用dict.get(key, default)方法替代繁琐的if-else判断,一行完成计数更新
  • 优化结果显示:把换行符显示为\n,避免输出时直接换行影响可读性

如果不需要保留提取单词的逻辑,只需要统计字符的话,删掉word_list相关代码即可。

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

火山引擎 最新活动