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

发布于 2021-01-29 17:56:30

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

def myfunct():
  ...
  yield result

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

for r in myfunct():
  dostuff(r)

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

while True:
  ...
  if something:
      my_element = pick_just_one_element(myfunct())
      dostuff(my_element)
  ...
关注者
0
被浏览
37
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用创建一个生成器

    g = myfunct()
    

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

    next(g)
    

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

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

    next(g, default_value)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看