【问题标题】:Python "all" function with conditional generator expression returning True. Why?Python "all" 函数,条件生成器表达式返回 True。为什么?
【发布时间】:2013-10-15 23:21:35
【问题描述】:

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

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

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

【问题讨论】:

标签: python python-3.x generator


【解决方案1】:

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

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

这是documented

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

强调我的。

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

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

【讨论】:

    【解决方案2】:

    正如the documentation 所说,all 所做的是:

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

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 1970-01-01
      • 2013-07-28
      • 2019-07-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多