Различение слов с другими словами в нем - PullRequest
0 голосов
/ 20 февраля 2019

поэтому я пытаюсь найти в предложении только слово "astro" (без учета регистра) с другими словами, в которых есть слово "astro".Например:

message = 'Astro, the astronaut, studies astrology.'

if 'astro' in message:
    count = message.count('astro')
    print(count)

Вывод этого текущего кода будет 3, потому что есть три слова, которые содержат это слово, но я хочу, чтобы желаемый вывод был 1;первое словоЛюбая помощь будет принята с благодарностью, спасибо!

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вам нужно немного помассировать данные.

message = "Astro, the astronaut, studies astrology."

Сначала вам нужно избавиться от всего, что не имеет отношения к отдельным словам.

import string

valid = ' ' + string.ascii_lowercase
message = [char for char in message.lower() if char in valid]
message = ''.join(message)

Теперь, сообщениевыглядит немного иначе:

>>> message
'astro the astronaut studies astrology'

Просто заново разделите сообщение на пробелы и посчитайте вхождения!

>>> message.split().count('astro')
1
0 голосов
/ 20 февраля 2019

Вам нужно разделить сообщение на отдельные слова с помощью split, а затем с помощью startswith проверить, встречается ли astro в начале слова.

...