【发布时间】:2013-10-15 23:21:35
【问题描述】:
谁能帮我理解为什么以下 Python 脚本返回 True?
x = ''
y = all(i == ' ' for i in x)
print(y)
我想这与x 是一个零长度实体有关,但无法完全理解。
【问题讨论】:
标签: python python-3.x generator
谁能帮我理解为什么以下 Python 脚本返回 True?
x = ''
y = all(i == ' ' for i in x)
print(y)
我想这与x 是一个零长度实体有关,但无法完全理解。
【问题讨论】:
标签: python python-3.x generator
all() 总是返回True 除非序列中有一个元素是False。
您的循环产生 0 个项目,因此返回 True。
这是documented:
如果 iterable 的所有元素都为真(或者如果 iterable 为空),则返回
True。
强调我的。
同样,any() 将始终返回 False,除非序列中的元素是 True,因此对于空序列,any() 返回默认值:
>>> any(True for _ in '')
False
【讨论】:
正如the documentation 所说,all 所做的是:
如果可迭代对象的所有元素都为真(或可迭代对象为空),则返回 True。
【讨论】: