首页 论坛 置顶 Python单词计数器,处理空格的文本单词计数

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #27793

    💡 关键要点:单词计数函数

    这个练习包括一个核心的单词计数函数和一个扩展的函数,用于计算不带空格的字符和通过标点符号分隔的句子。这是文本准备的一个清晰示例:修剪边缘、按空格拆分、使用len进行计数。我们将涵盖:基本函数的修剪和拆分扩展函数的替换和求和,以及展示输出的示例

    1. 基本计数器:修剪和拆分逻辑

    word_counter 函数接受文本,进行清理、分割,并返回单词计数:

    def word_counter(text: str) -> int:
        """
        计算给定文本中的单词数量。
        """
        # 移除前后空白字符
        clean_text = text.strip()
    
        # 按空格分割文本(处理单词之间的多个空格)
        words = clean_text.split()
    
        # 返回单词数量
        return len(words)

    strip() 方法用于去除外部空格,split() 方法将多个空格视为一个,从而避免空条目。使用 len 可以得到单词计数。简单处理,将 ” a b ” 视为 2。

    2. 扩展计数器:添加字符和句子

    word_counter_extended 添加了更多的指标:

    def word_counter_extended(text: str) -> tuple:
        """
        计算文本中的单词、字符(不包括空格)和句子数量。
    
    返回一个元组: (单词数, 字符数, 句子数)
        """
        clean_text = text.strip()
        words = clean_text.split()
        words_count = len(words)
    
        # 计算不包括空格的字符数
        chars_count = len(clean_text.replace(" ", ""))
    
        # 通过查找 ., !, ? 来计算句子数
    sentences_count = sum(clean_text.count(p) for p in ".!?")
    return words_count, chars_count, sentences_count
    重用修剪/拆分单词。replace(" ", "") 用于去除字符计数中的空格。计算句子的结尾标点符号总数。返回一个元组以支持多输出。

    3. 示例用法:使用示例进行测试

    在主程序中运行:

    sample_text = "  Python   is    awesome!  "
    print(sample_text)
    print("Words:", word_counter(sample_text))
    print("Extended:", word_counter_extended(sample_text))

    示例,单词数:3,扩展:(3, 15, 1)。显示处理空格和标点符号。


    🎯 总结与反思

    这个单词计数器教授文本基础知识,从清理到计数。它让我想起:

    • 空白技巧:去除/拆分管理杂乱。
    • 多指标:轻松扩展字符/句子。
    • 元组返回:整齐地打包多个值。

    非常适合日志或论文。更多内容,请处理连字符或引号。

    高级替代方案:使用正则表达式计算单词:len(re.findall(r’w+’, text)),或使用Counter计算频率。你的文本小贴士?评论告诉我们!

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。