如何在Python中统计数组指定单词的出现次数?
实现指定单词的出现次数统计
要准确统计输入文本中指定单词的完整出现次数,核心是匹配完整单词(避免子字符串误判,比如不要把"elif"中的"if"算作一次"if"的出现),可以通过以下步骤实现:
实现步骤
- 导入正则表达式模块
re,利用\b单词边界规则匹配完整单词 - 遍历目标单词列表,对每个单词统计匹配次数
- 整理统计结果并输出
完整代码示例
import sys import re # 读取用户输入 print("Input your code: \n") user_input = sys.stdin.read() # 指定待统计的单词 wordsToFind = ["if", "elif", "else", "for", "while"] # 统计每个单词的出现次数 word_counts = {} for word in wordsToFind: # 使用正则全词匹配,re.IGNORECASE可选,用于忽略大小写匹配 matches = re.findall(rf'\b{re.escape(word)}\b', user_input) word_counts[word] = len(matches) # 输出统计结果 print("\n单词统计结果:") for word, count in word_counts.items(): print(f"{word}: {count} 次")
代码说明
re.escape(word):对单词中的特殊字符进行转义,避免正则语法冲突(比如如果单词包含.或*等符号时不会出错)\b:正则中的单词边界,确保匹配的是独立的单词,而非其他单词的一部分- 若需要忽略大小写统计(比如匹配"If"、"IF"),可以在
re.findall中添加re.IGNORECASE参数:matches = re.findall(rf'\b{re.escape(word)}\b', user_input, re.IGNORECASE)
测试示例
当输入你提供的代码文本时,输出结果为:
单词统计结果: if: 1 次 elif: 1 次 else: 1 次 for: 0 次 while: 0 次
内容的提问来源于stack exchange,提问作者Sisimośki
相关产品推荐
相关产品推荐

