OR语句的Python速记

2024-09-25 08:35:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图检查列表中的任何一个元素是否在查询中找到

但是代码不起作用

if ['time' or 'Time'] in query:
sayTime()

Tags: or代码in元素列表iftimequery
2条回答
if any(x in query for x in ('time', 'Time')):

但是,如果您只是想不敏感地执行检查用例,则可以执行以下操作:

if 'time' in query.lower():

我假设query是一个字符串,而不是一个列表

如果目标是验证变量query不敏感地包含字符串time,则:

query = 'the Time is up'
if 'time' in query.lower():
    sayTime()

如果我们正在寻找非常具体的变化,我们可以通过一系列可接受的匹配进行测试:

query = 'the Time is up'
if any([x in query for x in ['time', 'Time']]):
    sayTime()

但是请注意in可能有误报,例如'time' in 'time to die'是真的

所以,如果我们想进行字符串比较,我们可以按照前面的建议进行向下比较,也可以进行直接比较

if 'time' == query.lower():
    sayTime()

或者检查查询是否存在in可接受值的列表:

if query in ['time', 'Time']:
    sayTime()

在第二个示例中query = 'TIME'将不满足if条件,而在第一个示例中它将满足if条件

相关问题 更多 >