如何统计字符串中独立单词"the"和"to"的出现次数?
解决独立单词统计问题
方法一:分割字符串为单词列表(最简单)
直接把输入字符串按空格拆成单个单词,再逐个检查是不是目标单词the或to,还能顺便处理带标点的情况(比如the,这种)。
代码示例:
# 获取输入字符串 input_str = input("请输入字符串:") # 按空格分割成单词列表 word_list = input_str.split() count = 0 # 定义要统计的目标单词 target_words = {"the", "to"} for word in word_list: # 去除单词首尾的常见标点(逗号、句号、问号等) cleaned_word = word.strip(",.!?;:") # 判断是否是目标单词(如果要区分大小写就去掉.lower()) if cleaned_word.lower() in target_words: count += 1 print(count)
测试你的示例输入these are the boxes,运行后会输出1,符合预期。
方法二:遍历字符串索引判断(贴近你的思路)
按照你之前想的,通过判断目标单词前后的空格/边界来识别独立单词,核心是找到目标单词的起始索引后,计算结束位置的下一个字符,判断是否符合条件。
代码示例:
input_str = input("请输入字符串:") count = 0 # 定义要统计的两个目标单词 targets = ["the", "to"] str_len = len(input_str) for target in targets: target_len = len(target) i = 0 # 遍历所有可能的起始位置 while i <= str_len - target_len: # 检查当前位置开始的子串是否等于目标单词 if input_str[i:i+target_len] == target: # 判断前面是否是字符串开头或者空格 is_front_valid = (i == 0) or (input_str[i-1] == " ") # 判断后面是否是字符串结尾或者空格 is_back_valid = (i + target_len == str_len) or (input_str[i+target_len] == " ") if is_front_valid and is_back_valid: count += 1 # 跳过已匹配的部分,避免重复统计 i += target_len else: i += 1 else: i += 1 print(count)
这个方法里,i+target_len就是目标单词结束字符的下一个索引,通过它可以判断后面是不是空格或者到了字符串末尾,完美解决你之前不知道怎么获取结束索引的问题。
内容的提问来源于stack exchange,提问作者Piyush Baweja
相关产品推荐
相关产品推荐

