如何简化Python中的多个条件

时间:2013-12-08 22:02:36

标签: python multiple-conditions

我在python中编写了一个解析一些字符串的脚本。

问题是我需要检查字符串是否包含某些部分。 我发现的方式不够聪明。

这是我的代码:

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

有没有办法优化这个?我有6个其他检查这种情况。

2 个答案:

答案 0 :(得分:2)

您可以使用any功能:

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

答案 1 :(得分:2)

使用any()all()

的生成器
if any(c not in message for c in ('CondA', 'CondB', ...)):
    ...

在Python 3中,您还可以使用map()懒惰:

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