if 'string1' in line: ...
... works as expected but what if I need to check multiple strings like so:
if 'string1' or 'string2' or 'string3' in line: ...
... doesn't seem to work.
if any(s in line for s in ('string1', 'string2', ...)):
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 'string1' in line or 'string2' in line or 'string3' in line:
Would that be fine for what you need to do?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With