سؤال

I wrote a script in python that parses some strings.

The problem is that I need to check if the string contains some parts. The way I found is not smart enough.

Here is my code:

if ("CondA" not in message) or ("CondB" not in message) or ("CondC" not in message) or ...:

Is there a way to optimize this? I have 6 other checks for this condition.

هل كانت مفيدة؟

المحلول

Use a generator with any() or all():

if any(c not in message for c in ('CondA', 'CondB', ...)):
    ...

In Python 3, you could also make use of map() being lazy:

if not all(map(message.__contains__, ('CondA', 'CondB', ...))):

نصائح أخرى

You can use any function:

if any(c not in message for c in ("CondA", "CondB", "CondC")):
    ...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top