Multiple value checks using 'in' operator (Python)

If you read the expression like this

if ('string1') or ('string2') or ('string3' in line):

The problem becomes obvious. What will happen is that 'string1' evaluates to True so the rest of the expression is shortcircuited.

The long hand way to write it is this

if 'string1' in line or 'string2' in line or 'string3' in line:

Which is a bit repetitive, so in this case it's better to use any() like in Ignacio's answer


if any(s in line for s in ('string1', 'string2', ...)):

Tags:

Python