如何在Python中使用边缘情况计算特定单词的出现次数

时间:2017-09-08 00:41:00

标签: python

我已经编写了代码来计算某个单词cat的出现,代码只传递了我的一些测试用例,它没有通过所有测试,特别是边缘情况。请注意,我不允许使用内置函数,如count()和其他许多函数。 这是我的代码:

mystery_string = "my cat your cat"
splitword = mystery_string.split()
sum = 0
for string in splitword:
    if string == "cat":
        sum += 1
print (sum)

当我将变量mystery_string更改为mystery_string = "catcatcatcatcat!!".mystery_string = "cacacat cacacat"或此mystery_string = "ucatX"或甚至此mystery_string = ".$cacacatcatcat".时,代码就会中断。我已经研究过类似问题的stackoverflow但没有解决方案。

2 个答案:

答案 0 :(得分:3)

使用count字符串方法。

>>> "catcatcatcatcat!!".count("cat")
5

或者,使用regular expressions

>>> import re
>>> len(re.findall("cat", "catcatcatcatcat!!"))
5

答案 1 :(得分:1)

实际上有“.count(str)”功能 例如:

catcatcat!ccat".count("cat")

输出4 但如果您不想使用它,您可以执行以下操作

def count(mainstr, substr):
 thecount = 0
 for i in range(len(mainstr)):
  if i <= len(mainstr) - len(substr):
   if mainstr[i:i+len(substr)] == substr:
    thecount+=1
 return thecount

您的代码计算文本中单词的出现次数,但不计算字符串中单词的出现次数......