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

如何仅从生成器中选择一项?

秦城
2023-03-14
问题内容

我有一个类似下面的生成器函数:

def myfunct():
  ...
  yield result

调用此函数的常用方法是:

for r in myfunct():
  dostuff(r)

我的问题是,有什么方法可以随时从生成器中获取一个元素吗?例如,我想做类似的事情:

while True:
  ...
  if something:
      my_element = pick_just_one_element(myfunct())
      dostuff(my_element)
  ...

问题答案:

使用创建一个生成器

g = myfunct()

每当您想要一件物品时,请使用

next(g)

(或g.next()在Python 2.5或更低版本中)。

如果发电机退出,它将升高StopIteration。您可以根据需要捕获此异常,也可以将default参数使用到next()

next(g, default_value)


 类似资料:
  • 问题内容: 我只想通过“ where子句”从数据库中选择(并返回)一个字段。代码是: 这将失败,并且回溯是: 如何选择并仅返回“ id”列?我也尝试了其他几种方法,但也失败了。是“ load_only”正确的选项吗? 问题答案: 一个对象接受实体查询作为位置参数,所以只是通过它: 返回第一个结果的第一个元素;如果未找到任何行,则返回None。它为多行引发异常。 表示仅应加载实体的给定基于列的属性,

  • 在这里json 如何使用库boost获得更新的值4? 我知道怎么取这样一个“ts”值。但是我不明白如何取两个括号的值

  • 本文向大家介绍如何仅从R数据框中选择数字列?,包括了如何仅从R数据框中选择数字列?的使用技巧和注意事项,需要的朋友参考一下 最简单的方法是使用dplyr包的select_if函数,但我们也可以通过lapply来实现。 使用dplyr 使用lapply

  • 我试图在Python中创建一个随机列表。每次运行代码时,列表中的随机单词都会按顺序出现。我想做的是: 目标是要求用户从将要显示的列表中选择一些内容。下面是我想要的输出示例:

  • 我怎样才能使一个字母出现在日历上,而不是两个,例如MO我想成为M。我已经尝试过使用周末短,使三个字母"MON",有人知道如何使"M"

  • 我是新来的蟒蛇。我真的很想知道如何从SELECT中获得我的选项。在下面列出的情况下,我想选择select标记的第一个选项。 我尝试了很多方法,但都失败了。当前错误为“元素当前不可见,可能无法操作”。使用索引不会出错,但不会显示任何内容 没有打印源代码的输出如下所示: 这是网站的源代码 我注意到,实际上它设法检测选择的所有8个选项,但就在尝试更新选项时,出现了一些错误。 更具体地说,错误是(万一有用