有条件地在 python 中生成一个生成器 [英] Conditionally yield a generator in python

查看:32
本文介绍了有条件地在 python 中生成一个生成器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有这个代码:

def f(data, all_at_once):
    if all_at_once:
        return data
    else:
        yield from data

f([1,2,3], True)

f 总是返回一个生成器,而不管 all_at_once 的值如何.如何获得有条件返回生成器的函数?

f always returns a generator, regardless of the value of all_at_once. How can I get a function that conditionally returns a generator?

推荐答案

这是一个开始.也许它可以通过 lambda

Here's a start. Perhaps it can be improved by a lambda

def gen(data):
    yield from data

def f(data, all_at_once):
    if all_at_once:
        return data
    return gen(data)

f([1,2,3], True)

这篇关于有条件地在 python 中生成一个生成器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆