在Python中我试图通过使用:
在sentece中找到一个单词if word in sentence:
number = number + 1
这适用于在句子中查找单词,遇到的问题是此代码在其他单词中找到单词。例如:
word = "or"
sentence = "Python or Java use a lot of words"
if word in sentence:
number = number + 1
数字将等于2而不是1,因为“或”在“Python”之后和“Java”之前,并且它还在单词“word”中找到“或”我试图找到一种方法来找到单词“或“本身,而不是程序在句子和另一个词中找到它。
答案 0 :(得分:6)
"Python or Java use a lot of words".lower().split().count('or')
应该这样做。
lower将所有文本转换为小写,split将其转换为列表(space是默认分隔符),然后count对列表进行计数。
答案 1 :(得分:1)
您需要先使用str.split
分割句子:
>>> sentence = "Python or Java use a lot of words"
>>> sentence.split()
['Python', 'or', 'Java', 'use', 'a', 'lot', 'of', 'words']
>>>
这将为您提供单词列表。之后,您的代码将起作用:
>>> # I made this so I didn't get a NameError
>>> number = 0
>>> word = "or"
>>> sentence = "Python or Java use a lot of words"
>>> if word in sentence.split():
... # This is the same as "number = number + 1"
... number += 1
...
>>> number
1
>>>
答案 2 :(得分:0)
您可以先splitting尝试sentence
if word in sentence.split(" "):
这会将sentence
拆分成一个单词数组,假设所有单词都由一个空格分隔。这相当于使用
if word in [ "Python", "or", "Java", "use", "a", "lot", "of", "words" ]:
将检查列表中是否存在整个单词,而不是检查原始sentence