所以我试图在一个句子中只检测“astro”(不区分大小写),其中包含“astro”一词。例如:
message = 'Astro, the astronaut, studies astrology.'
if 'astro' in message:
count = message.count('astro')
print(count)
此当前代码的输出将为3,因为有三个单词包含该单词,但我希望所需的输出为1;第一个字。任何帮助将不胜感激,谢谢!
您需要使用split
将消息拆分为单独的单词,然后使用startswith
检查astro是否出现在单词的开头。
你需要稍微按摩一下数据。
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