创建一个函数,该函数计算确切单词在字符串中出现的时间

时间:2018-12-03 19:39:39

标签: python function

好吧,我是python的新手,正在尝试创建一个函数,该函数计算确切单词在字符串中出现的时间。这是我的python代码:

def fsi(s):
    count = 0
    for word in s.lower().split():
        if word == 'ali':
            count += 1
        return count 

当我调用fsi函数时,它无法正常工作,并且返回的数字不正确。它不再返回1

fsi('ali and ali and ali!')

您建议我如何解决?

2 个答案:

答案 0 :(得分:1)

正确的方式1:

import re
len(re.findall(pattern, string_to_search))
#Usage 
len(re.findall('\bali\b', s))

正确的方式2:

s = "ali and ali and ali!"
s.count('ali')

答案 1 :(得分:0)

这与正则表达式无关紧要:

>>> import re
>>> re.findall(r'\bali\b', 'ali and ali and ali!')
['ali', 'ali', 'ali']

如果使用Python字符串例程,则需要去除各种形式的标点符号。否则ali==ali!将是False

要使用Python字符串例程执行此操作,可以执行以下操作:

>>> s='ali the aligator is called ali!'
>>> sum(1 for w in [''.join([c for c in word if c.isalpha()]) for word in s.lower().split()] if w=='ali')
2