好吧,我是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!')
您建议我如何解决?
答案 0 :(得分:1)
import re
len(re.findall(pattern, string_to_search))
#Usage
len(re.findall('\bali\b', s))
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