什么是pythonic方法来确定两个或多个布尔计算都是假的?

什么是pythonic方法来确定两个或多个布尔计算都是假的?,python,syntax,boolean,Python,Syntax,Boolean,在像if(bool)和(bool):这样的条件中,如果两个求值都是False,那么返回True的最干净的表达式是什么 我看到许多选项可以从逻辑上实现这一点,但在我看来它们都很混乱。您可以使用all: if all(not b for b in [bool_1, bool_2, ..., bool_n]): # means: if all are not True (False) 任何: if not any([bool_1, bool_2, ..., bool_n]): # means: if

在像
if(bool)和(bool):
这样的条件中,如果两个求值都是
False
,那么返回
True
的最干净的表达式是什么


我看到许多选项可以从逻辑上实现这一点,但在我看来它们都很混乱。

您可以使用
all

if all(not b for b in [bool_1, bool_2, ..., bool_n]):
# means: if all are not True (False)
任何

if not any([bool_1, bool_2, ..., bool_n]):
# means: if not any of them is True (same as above, logically)
或者,
sum
(仅使用
bool
类型,否则使用
sum(映射(bool,[bool\u 1,…,bool\u n]))


你读了吗?它似乎有一个很好的例子,如果(不是bool1)和(不是bool2)应该有效,就好像不(bool1或bool2)可能重复@B.Go,是的。这些是我见过的最好的选择。谢谢。@MyNameIsCaleb,你给出的链接的答案确实适用于我的问题,但该链接的问题没有我的那么具体。我还没有尝试过
all
any
。非常感谢。这些看起来非常有用。您不需要带有
any
的genexp。请注意,它们不一定是等价的<代码>不是(a或b)只会计算
b
a
False
,而
不是任何(a,b)
总是计算
a
b
@tobias\k你是对的,但我的意思是(并说)逻辑上等价,它们是。
if sum([bool_1, bool_2, ..., bool_n]) == 0:   #  or, if not sum(...):
# True is 1, False is 0, if sum is 0, then all are 0 (False)