any() 是否被延迟评估?

2023-11-25

我正在编写一个脚本,其中我必须根据多种条件测试数字。如果any满足我想要返回的条件True我想以最快的方式做到这一点。

我的第一个想法是使用any()而不是嵌套if语句或多个or链接我的条件。因为如果有任何一个条件满足的话我会很满意True我真的可以从中受益any()懒惰并尽快返回 True。

基于以下事实,我认为以下打印是立即发生的,而不是在 10 (= 0 + 1 + 2 + 3 + 4) 秒后发生。是这样还是我弄错了?

import time

def some(sec):
    time.sleep(sec)
    return True

print(any(some(x) for x in range(5)))

Yes, any() and all()短路,一旦结果明确就中止:参见docs:

全部(可迭代)

如果可迭代的所有元素都为 true(或者如果 可迭代为空)。相当于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

任意(可迭代)

如果可迭代的任何元素为 true,则返回 True。如果可迭代的是 空,返回False。相当于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

any() 是否被延迟评估? 的相关文章

随机推荐

  • Kafka Mirror Maker 无法复制 __consumer_offset 主题

    我正在尝试利用镜子制造商来复制 consumer offsets主题与其他主题一起 它给出了如下所述的错误 2018 10 24 16 16 03 802 ERROR 向主题发送消息时出错 consumer offsets 键 16 字节
  • 仅跟踪 iframe 历史记录

    我有一个包含 iframe 的页面 我只想跟踪 iframe 的历史记录 我尝试像这样使用历史对象
  • 动态添加侦听器到 Google 地图标记

    我正在开发一个页面 该页面使用 Javascript httpObject 获取代码并使用它来更新页面上的两个元素 一个谷歌地图和一个列出标记指向的内容的 DIV 那一点效果很好 问题是 当我创建标记时 我通过 for 循环来完成此操作 并
  • 在管道操作符时如何返回可观察的“forkJoin”

    在我拥有这个运行良好的解析器之前 resolve return forkJoin this getData1 this getData2 this getData3 现在我必须做一些实际上行不通的事情 resolve return this
  • 在构建器模式中管理订单的首选方法是什么?

    我创建了一个流畅的构建器样式模式来帮助加载测试数据 某些方法的顺序很重要 并且想知道管理正确顺序的首选方法是什么 我目前有以下情况 using NUnit Framework TestFixture public class DataBui
  • Swing动画运行速度极慢

    我当前使用 Java Swing 运行的动画存在问题 这是一个离散事件模拟 基于文本的模拟工作正常 我只是在将模拟连接到 GUI 输出时遇到问题 对于此示例 我将模拟 10 辆汽车 这些汽车代表的是JPanels我稍后将详细阐述这一点 因此
  • 如何在 Java Swing 中制作带有复选框的列表?

    在 Java Swing 中拥有每个项目都带有复选框的列表的最佳方式是什么 IE 一个 JList 其中每个项目都有一些文本和一个复选框 一个精彩的答案是这样的CheckBoxList 它实现了 Telcontar 的答案 尽管是 3 年前
  • Selenium:使用 Python 获取元素的坐标或尺寸

    我看到有一些方法可以通过 Selenium 的各种 Java 库获取元素的屏幕位置和尺寸 例如org openqa selenium Dimension 其中提供 getSize and org openqa selenium Point
  • LINQ - 序列不包含元素

    我正在使用 LINQ 查询 如下所示 object collection where t gt t id Equals 2 First 我收到错误 序列不包含元素 为什么结果不包含元素时会抛出错误 当没有找到结果时 它不应该返回 null
  • 在 Android 上以编程方式设置 VPN

    我找到了以下代码以编程方式建立新的 VPN 但我不知道如何使用它来创建我的应用程序 VpnService service context getSystemService VPN SERVICE VpnProfile profile Vpn
  • Visual Studio:如何使用 WPF 编写编辑器扩展

    我正在尝试为 Visual Studio 编写一个编辑器扩展 我已经下载了 VS SDK 并创建了一个新的 Visual Studio Package 项目 但为我创建的虚拟控件是 Windows 窗体控件 而不是 WPF 控件 我正在尝试
  • 如何从 PostgreSQL 存储过程获取结果集?

    我在 PostgreSQL 11 中创建了一个存储过程来执行 CRUD 操作 它对于 1 创建 2 更新 3 删除运行良好 但是当我通过传递来运行读取命令时Condition 4要选择结果集 我收到以下错误 我已经使用 PostgreSQL
  • 在 QGraphicsScene 中显示图像

    我有一个简短的脚本 可以使用 PIL 多次修改图像 我希望能够在完成时显示中间步骤 因此我添加了一个 QGraphics 场景 并尝试在那里显示阶段 它将正确调整最后阶段的大小和居中 退出功能之前发布的最后一个阶段 但它会显示中间步骤 但不
  • php starup sqlsrv无法初始化模块

    我正在尝试将 MSSQL 连接到 PHP 我正在关注this教程 无论如何 在我按照该教程中所述添加 dll 文件后 我收到以下警告 我该如何解决这个问题 php starup sqlsrv unable to initialize mod
  • 证明SQL注入

    我试图在这里简单地证明这个简单的函数不足以阻止世界上的每一个 sql 注入 Function CleanForSQL ByVal input As String As String Return input Replace End Func
  • 具有多个应用程序的 ASP.NET Identity

    因此 我们的组织正在使用 ASP NET MVC 和 Web API 开发一些新的 Web 应用程序 我们决定不使用 Active Directory 进行身份验证 授权 因此看起来带有实体框架的 ASP NET 身份可能会起作用 查看数据
  • 使用 AutoResetEvent 同步两个线程

    我正在尝试实施AutoResetEvent 为此 我使用一个非常简单的类 public class MyThreadTest static readonly AutoResetEvent thread1Step new AutoResetE
  • 如何将视图添加到 LinearLayout,但从下向上?

    可以添加视图LinearLayout一个接一个向上的方向 您可以通过以下方式以编程方式添加它 LinearLayout layout LinearLayout findViewById R id layout layout addView
  • 在 Qt 安装程序框架 (QtIFW) 安装程序中安装 VC++ Redistributables?

    我正在使用 Qt Installer Framework v2 0 1 为我的应用程序构建安装程序 我正在 Windows 上为 x86 和 x64 构建应用程序 因此我正在为每个体系结构构建一个安装程序 每个体系结构中打包有不同的 VC
  • any() 是否被延迟评估?

    我正在编写一个脚本 其中我必须根据多种条件测试数字 如果any满足我想要返回的条件True我想以最快的方式做到这一点 我的第一个想法是使用any 而不是嵌套if语句或多个or链接我的条件 因为如果有任何一个条件满足的话我会很满意True我真