区分词语与其他词语

问题描述 投票:-2回答:2

所以我试图在一个句子中只检测“astro”(不区分大小写),其中包含“astro”一词。例如:

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

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

此当前代码的输出将为3,因为有三个单词包含该单词,但我希望所需的输出为1;第一个字。任何帮助将不胜感激,谢谢!

python if-statement embedding
2个回答
0
投票

您需要使用split将消息拆分为单独的单词,然后使用startswith检查astro是否出现在单词的开头。


0
投票

你需要稍微按摩一下数据。

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
© www.soinside.com 2019 - 2024. All rights reserved.