1

在 Python 中,我试图通过以下方式在句子中查找单词:

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

number 将等于 2 而不是 1,因为“or”在“Python”之后和“Java”之前,并且它还在“word”这个词中找到“or”我试图找到一种方法来找到“or”这个词本身,而不是程序在句子和另一个单词中找到它。

4

3 回答 3

6
"Python or Java use a lot of words".lower().split().count('or')

应该这样做。

lower 将所有文本转换为小写, split 将其转换为列表(空格是默认分隔符),然后 count 对列表进行计数。

于 2013-11-01T19:09:22.687 回答
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
>>>
于 2013-11-01T19:08:32.770 回答
0

您可以尝试拆分sentence一个,这样

if word in sentence.split(" "):

sentence假设所有单词都由一个空格分隔,这将拆分为一个单词数组。这相当于使用

if word in [ "Python", "or", "Java", "use", "a", "lot", "of", "words" ]:

这将检查整个单词是否存在于列表中,而不是检查原始单词中的子字符串sentence

于 2013-11-01T19:08:28.150 回答