`return iterator` 和 `yield from iterator` 之间的区别

2024-01-06

我正在尝试实现我自己的版本itertools.compress,问题是我偶然发现了返回类型。我的意思是这两个函数都返回一个迭代器,但我认为第二个函数不被视为生成器函数,因为里面没有yield语句。所以我的问题是,这两种实现等效吗?

def compress (seq, selectors):
    from operator import itemgetter
    fst = itemgetter (0)
    snd = itemgetter (1)
    yield from map (fst, filter (snd, zip (seq, selectors)))

def compress (seq, selectors):
    from operator import itemgetter
    fst = itemgetter (0)
    snd = itemgetter (1)
    return map (fst, filter (snd, zip (seq, selectors)))

不完全的。

yield from seq相当于for i in seq: yield i

这意味着您的第一个实现是一个生成器,它从 map() 的结果生成每个项目,而您的第二个实现则返回映射对象。

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

`return iterator` 和 `yield from iterator` 之间的区别 的相关文章

随机推荐

  • 为什么 UIButton 圆角时出现粗糙的黑边?

    我正在添加一个UIButton 带有背景图像 到导航栏并设置带有边框的圆角 我在角落处看到奇怪的黑色轮廓 这是我用来创建按钮的代码viewDidLoad ProfileImageService profileImageService Pro
  • WordPress 删除空的 span 标签

    我使用 WordPress 编辑器 我想在 span 标签中显示一个图标 如下所示 div class box around div class box left span class fa fa search span div div c
  • 从 Inherited QThread 迁移到 Worker 模型

    所以通过我之前的问题得到了很多帮助 中断QThread睡眠 https stackoverflow com questions 37119319 interrupting qthread sleep and PySide 将信号从 QThr
  • Tkinter 鼠标颜色

    我现在正在开发一个项目 我需要一个像这样的黑色鼠标光标 我用过root config cursor arrow black black 但它不想改变光标的颜色 我使用的是 Windows 如果这有帮助的话 Windows 默认安装了黑色光标
  • 使用 Python BeautifulSoup 抓取 NSE 期权价格,涉及编码校正

    2020 年 12 月更新 I have 实现了整个 FnO 宇宙的完全自动化 分钟级数据收集 自动适应不断变化的 FnO 宇宙 退出和新条目 在非市场时间关闭 节假日关闭 包括新宣布的节假日 在年度 Muhurat 交易数据期间自动启动
  • 如何在 Materialize 中使用

    div class col s12 ul class tabs li class tab col s4 a href test1 class active tab1 a li li class tab col s4 a href test2
  • 如何覆盖属性类型?

    鉴于我有以下结构 type AB A string B string 但现在我想创建一个新类型 它可以扩展键 但也可以覆盖 A 属性 所以最终类型应该是 A number B string 所以我尝试将 AB 类型分配给我的最终类型 并用新
  • ActionView::Template::Error(变量@fontAwesomeEotPath_iefix 未定义)

    我在尝试加载任何页面时收到错误 ActionView Template Error variable fontAwesomeEotPath iefix is undefined in app assets stylesheets boots
  • Visual Basic 6.0 远程数据库如何实现?

    我需要 VB6 代码来通过互联网将 mdb 文件从一台 PC 连接到另一台 PC 当我更新 保存数据库时 它必须通过互联网更新到另一端 PC 我写了一个VB6简单的数据库程序 可以保存学生的Roll Num 姓名 地址 它可以在我的电脑上运
  • Spring 项目的 Java 9 Jigsaw(模块)有什么计划吗?

    Java 9 计划很快发布 7 月 27 日 是否有计划发布模块化的 Spring 项目的 Java 9 兼容版本 Java 9 项目 Jigsaw Spring 5 Spring 的下一个主要版本 不会是模块化的 但是 您可以使用 Spr
  • 鉴于不再支持 HONEYCOMB BOOT COMPLETED,我如何才能发现我的设备已重新启动?

    我正在 Android 4 0 3 中开发应用程序 据我了解 不再支持 HONEYCOMB BOOT COMPLETED 事件谷歌的文档 http developer android com about versions android 3
  • PHP Profiler 具有方法执行计数、次数等,无需扩展

    除了 CI 的默认分析器之外 是否有任何类或库可以在我的本地 php 环境中用于分析 查找瓶颈 查看不必要的执行时间等 我要远程使用它 我的主机没有安装任何调试扩展 我不想要求他们安装 如果有任何 PHP 解决方案 那就太好了 如果可能 请
  • 如何在android中垂直居中对齐文本

    我有阿拉伯语文本 因此我将重力设置为右侧以便从右侧开始文本 正文从现在开始 但另一个问题是文本从页面顶部开始渲染 但我需要将文本垂直居中 尽管我尝试了几种变体 但我无法使其垂直居中 这是我的 xml 文件的示例
  • 在屏蔽数组上使用 numpy.median

    在屏蔽数组的情况下 我对 numpy median 的输出有点困惑 这是一个简单的例子 假设导入了 numpy 我的版本是 1 6 2 gt gt gt a 3 0 4 0 5 0 6 0 numpy nan gt gt gt am num
  • 如何使用 Publishers.CombineLatest 获取 1 个发布者

    我正在尝试使用 2 个发布商 并将它们流式传输到从这两个值映射的 1 个发布商 我的代码是 class ViewModel let email CurrentValueSubject
  • solr boost查询与单独排序

    我想将所有 inv 0 可能的值从 0 到 1000 的文档降级到结果集的末尾 我还有其他排序选项 例如 name desc 也作为查询的一部分 例如下面是我的 solr 文档 Doc1 name apple Inv 2 Doc2 name
  • 在 hybris 中我们一次可以创建多少个扩展?

    通过使用ant modulegen hybris将创建七个扩展 如驾驶舱 核心 立面 店面 测试 初始数据和完整流程 无论如何 还有创建比这个扩展更多的扩展吗 预先感谢 使用 ant modulegen 命令 您可以生成满足特定要求的扩展包
  • AWS API网关:匿名用户无权执行API

    尝试发布到我在 API 网关中创建的 API Message User anonymous is not authorized to perform execute api Invoke on resource arn aws execut
  • 将寄存器设置为零有多少种方法?

    我很好奇在 x86 汇编中有多少种方法可以将寄存器设置为零 使用一条指令 有人告诉我 他设法找到了至少 10 种方法来做到这一点 我能想到的有 xor ax ax mov ax 0 and ax 0 在 IA32 下如何将 0 移动到 ax
  • `return iterator` 和 `yield from iterator` 之间的区别

    我正在尝试实现我自己的版本itertools compress 问题是我偶然发现了返回类型 我的意思是这两个函数都返回一个迭代器 但我认为第二个函数不被视为生成器函数 因为里面没有yield语句 所以我的问题是 这两种实现等效吗 def c