AKA正确的版本:
if ['hi', 'hello', 'greetings'] in userMessage:
print('Hello!')
我尝试了上面显示的内容,但它说不能使用列表,它必须使用单个字符串。如果我将数组设置为对象/变量也是一样的。如果我使用"或"它似乎并没有完全奏效。
答案 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。”]进行比较。