4

谁能帮我理解为什么以下 Python 脚本会返回True

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

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

4

2 回答 2

7

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

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

这是记录在案的:

如果可迭代True对象的所有元素都为真(或者可迭代对象为空),则返回。

强调我的。

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

>>> any(True for _ in '')
False
于 2013-10-08T20:35:55.150 回答
1

正如文档所述,all它的作用是:

如果可迭代对象的所有元素都为真(或可迭代对象为空),则返回 True。

于 2013-10-08T20:36:03.473 回答