任何人都可以帮助我理解为什么以下Python脚本会返回True
吗?
x = ''
y = all(i == ' ' for i in x)
print(y)
我认为这与x
是零长度实体有关,但无法完全理解。
答案 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。