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

标签 python input keyword-search

<分区>

AKA 的正确版本:

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

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

最佳答案

如果目标只是说明是否有任何已知列表出现在 userMessage 中,而您不关心它是哪一个,use anygenerator expression :

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

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

如果单词必须作为单独的单词找到(所以 userMessage = "This" 应该是 false,即使 hi 出现在其中),那么使用:

if not {'hi', 'hello', 'greetings'}.isdisjoint(userMessage.split()):

它也会短路,但方式不同;它迭代 userMessage.split() 直到匹配其中一个关键字,然后停止并返回 False(not 翻转为 True),仅当没有任何单词与关键字匹配时才返回 True(由 not 翻转为 False)。

关于python - 检查 Python 输入是否包含关键字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34602571/

相关文章:

python - 比较两个元组列表

python - Scrapy 中的列表索引超出范围错误

c# - 如何在所有应用程序中模拟键盘输入?

PHP - 选择下拉列表并在文本框上显示数据

php - 根据一组关键字的出现对sql结果进行排序

python - 将列表转换为每两个元素的元组列表

Python 字符串递归,字符串索引超出范围

java - Lucene搜索引擎中使用自建方法

android - `adb shell input` 返回 `Killed` 响应,没有注册任何输入

document - 文档与多个关键字的相关性