内置函数“ all”和“ any”的行为

时间:2019-10-30 19:09:56

标签: python python-3.x boolean boolean-expression

我发现关于all函数的行为很奇怪,希望能对逻辑或内部工作有一个正确的解释。

假设我有一个空列表-items = []通常为“假”,即bool(items)bool([])False。但是,all将其视为True

all([item for item in items]) # True
all(item for item in items) # True
all(items) # True
all([]) # True

但是奇怪的是,列表中有一个空列表,其结果为false:

all([[]]) # False

这似乎并不影响any的行为:

any([item for item in items]) # False
any(item for item in items) # False
any(items) # False
any([]) # False
any([[]]) # False

我已经在python 3.7.5中进行了测试,我不知道这是否是其他版本中的行为。有人可以解释一下吗?

0 个答案:

没有答案