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

chr*_*rtt 4 python generator python-3.x

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

x = ''
y = all(i == ' ' for i in x)
print(y)
Run Code Online (Sandbox Code Playgroud)

我想这与x零长度实体有关,但无法完全理解.

Mar*_*ers 7

all()True 除非序列中有一个元素,否则总是返回False.

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

这是记录:

返回True如果的所有元素迭代是真实的(或者,如果可迭代为空).

强调我的.

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

>>> any(True for _ in '')
False
Run Code Online (Sandbox Code Playgroud)