检查Python输入是否包含关键字列表

时间:2016-01-05 00:52:40

标签: python input keyword-search

AKA正确的版本:

if ['hi', 'hello', 'greetings'] in userMessage:
    print('Hello!')

我尝试了上面显示的内容,但它说不能使用列表,它必须使用单个字符串。如果我将数组设置为对象/变量也是一样的。如果我使用"或"它似乎并没有完全奏效。

3 个答案:

答案 0 :(得分:5)

如果目标只是说明userMessage中是否有任何已知列表,并且您不关心它是哪一个,use any generator expression

if any(srchstr in userMessage for srchstr in ('hi', 'hello', 'greetings')):

它会在命中时短路,因此如果输入中出现hi,则不会检查其余部分,并立即返回True

答案 1 :(得分:2)

你可以这样做:

found = set(['hi','hello','greetings']) & set(userMessage.split())
for obj in found:
    print found

如果您正在寻找多个单词

答案 2 :(得分:0)

您还可以使用Set:

比较多个元素
if set(['hi', 'hello', 'greetings']) <= set(userMessage.split()):
   print("Hello!")

但是一旦它不能避免ponctuation,请小心使用split()。所以,如果你的userMessage类似于“hi,hello,greetings”。它会将这些单词与[“hi”,“hello”,“greetings。”]进行比较。