使用'in'运算符(Python)进行多值检查

3zz*_*zzy 10 python

if 'string1' in line: ...
Run Code Online (Sandbox Code Playgroud)

...按预期工作,但如果我需要检查多个字符串,如下所示:

if 'string1' or 'string2' or 'string3' in line: ...
Run Code Online (Sandbox Code Playgroud)

......似乎没有用.

Ign*_*ams 27

if any(s in line for s in ('string1', 'string2', ...)):
Run Code Online (Sandbox Code Playgroud)


Joh*_*ooy 5

如果你读这样的表达

if ('string1') or ('string2') or ('string3' in line):
Run Code Online (Sandbox Code Playgroud)

问题变得很明显。将会发生的是 'string1' 的计算结果为 True,因此表达式的其余部分被短路。

写它的长手方式是这样的

if 'string1' in line or 'string2' in line or 'string3' in line:
Run Code Online (Sandbox Code Playgroud)

这有点重复,所以在这种情况下,最any()好像 Ignacio 的回答那样使用