Создайте функцию, которая считает количество раз, когда точное слово встречается в строке - PullRequest
0 голосов
/ 03 декабря 2018

хорошо, я новичок в 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 голосов
/ 03 декабря 2018

Это тривиально с регулярным выражением:

>>> 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
0 голосов
/ 03 декабря 2018

Правильный путь 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...