从句子中查找并选择所需的单词?

时间:2016-08-23 18:36:37

标签: python python-2.7

我正在尝试从用户处获取raw_input,然后从该输入中找到所需的单词。如果所需的单词存在,则运行一个函数。所以我尝试.split分割输入,但如何找到所需的单词是否在列表中。

2 个答案:

答案 0 :(得分:6)

完成这项工作非常简单。 Python有一个in运算符,可以完全满足您的需求。您可以查看字符串中是否存在单词,然后执行您想要执行的任何操作。

sentence = 'hello world'
required_word = 'hello'

if required_word in sentence:
    # do whatever you'd like

您可以看到in运算符的一些基本示例[{3}}。

根据您输入的复杂程度或所需单词的复杂性,您可能会遇到一些问题。为了解决这个问题,您可能希望对所需的词语更加具体。

让我们以此为例:

sentence = 'i am harrison'
required_word = 'is'

如果您要执行True,此示例将评估为if required_word in sentence:,因为从技术上讲,字母is是单词" harrison"的字符串。

要解决此问题,您只需执行此操作:

sentence = 'i am harrison'
required_word = ' is '

通过在单词之前和之后放置空格,它将专门查找所需单词作为单独单词出现,而不是单词的一部分。

但是,如果你可以匹配子字符串以及单词出现,那么你可以忽略我之前解释的内容。

  

如果有一组单词,如果有任何一个单词,那么我该怎么办?就像,所需的单词是"是"或者"是的"。用户输入包含"是"或者"是的"。

根据这个问题,实现看起来像这样:

sentence = 'yes i like to code in python'
required_words = ['yes', 'yeah']
                  ^   ^  ^    ^
# add spaces before and after each word if you don't 
# want to accidentally run into a chance where either word 
# is a substring of one of the words in sentence

if any(word in sentence for word in required_words):
    # do whatever you'd like

这使用了any运算符。只要在required_words中找到sentence中的至少一个单词,if语句就会评估为真。

答案 1 :(得分:1)

哈利森的方式是单向的。以下是其他方式:

方式1:

sentence = raw_input("enter input:")
words = sentence.split(' ')
desired_word = 'test'

if desired_word in words:
    # do required operations

方式2:

import re

sentence = raw_input("enter input:")
desired_word = 'test'
if re.search('\s' + desired_word + '\s', sentence.strip()):
    # do required operations

方式3(特别是如果在单词末尾有标点符号):

import re

sentence = raw_input("enter input:")
desired_word = 'test'
if re.search('\s' + desired_word + '[\s,:;]', sentence.strip()):
    # do required operations