当前位置: 首页 > 面试题库 >

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

江超英
2023-03-14
问题内容

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

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

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


问题答案:

all()``True 除非 序列中存在元素, 否则 始终返回False

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

这是记录:

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

强调我的。

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

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


 类似资料:
  • 问题内容: 使用Python正则表达式如何获得/返回?所有Python回报是: 问题答案: 对象始终为true,如果不匹配,则返回。只是测试真实性。

  • 问题内容: 这个问题已经在这里有了答案 : 生成器表达式使用生成器创建后分配的列表 (5个答案) 去年关闭。 我正在运行一段代码,该代码在程序的某个部分意外出了逻辑错误。在研究本节时,我创建了一个测试文件来测试正在运行的语句集,并发现了一个看起来很奇怪的异常错误。 我测试了以下简单代码: 输出为: 是的,什么都没有。我期望过滤器理解能获得2中的项并输出,但是我没有得到: 当我注释掉第三行再次对其进

  • 问题内容: 我知道这有充分的理由,但我想知道是什么原因? 如果all()用于检查iterable上的每个项目是否均评估为“ True”,并且我们知道空列表的评估结果为False 那么,为什么all()对于空列表返回True? <编辑> 我已经阅读了文档,并且知道实现 但是问题是为什么不呢? 这有逻辑吗?如果您有已完成任务的列表 好的,在上面的 假设 示例中,如果我没有任务,那真的很有意义,所以我可

  • 问题内容: 在Python中,通过 生成器表达式 创建生成器对象与使用 yield 语句之间有什么区别吗? 使用 yield : 使用 生成器表达式 : 这两个函数都返回生成器对象,这些对象生成元组,例如(0,0),(0,1)等。 一个或另一个有什么优势吗?有什么想法吗? 谢谢大家!这些答案中有很多不错的信息和进一步的参考! 问题答案: 两者之间只有细微的差别。您可以使用该模块自己检查这种事情。

  • 问题内容: 在Python 2.6中查看Queue.py时,我发现这个结构有点奇怪: 如果maxsize为0,则队列永远不会满。 我的问题是在这种情况下如何运作?如何0 < 0 == 0被认为是错误的? 问题答案: 我相信Python对关系运算符的序列有特殊的处理方式,以使范围比较易于表达。能说比说好得多。 这些称为链接比较。这是他们文档的链接。 在您谈论的其他情况下,括号会强制在一个关系运算符之

  • Quartz 的Cron任务调度表达式一般人很难理解,在Googole上查询也没有发现类似的代码,所以开发了一个对Quartz Cron 表达式的可视化双向解析和生成的一个java的GUI程序,供使用Quartz的程序员参考和使用,源代码放在SourceForge网站