只用一个句子而不是单词(python)查找单词

时间:2013-11-01 19:06:14

标签: python

在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”中找到“或”我试图找到一种方法来找到单词“或“本身,而不是程序在句子和另一个词中找到它。

3 个答案:

答案 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

中的子字符串