Python“all”函数,条件生成器表达式返回True。为什么?

时间:2013-10-08 20:34:38

标签: python python-3.x generator

任何人都可以帮助我理解为什么以下Python脚本会返回True吗?

x = ''
y = all(i == ' ' for i in x)
print(y)

我认为这与x是零长度实体有关,但无法完全理解。

2 个答案:

答案 0 :(得分:7)

all()始终返回True ,除非序列中的元素为False

你的循环产生0个项目,因此返回True

这是documented

  

如果 iterable 的所有元素都为true(或者如果iterable为空),则返回True

强调我的。

同样,any()将始终返回False,除非序列中的元素为True,因此对于空序列,any()会返回默认值:

>>> any(True for _ in '')
False

答案 1 :(得分:1)

正如the documentation所述,all的作用是:

  

如果iterable的所有元素都为true(或者iterable为空),则返回True。