函数如何取(g,n),它将生成器g作为参数并返回包含g的前n个值的列表

2024-04-29 06:57:03 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的方法

def take(g,n):
    for i in range(10):
        yield random.randint(g)
        return n

2条回答

如果您不确定生成器是否会生成N个值,可以使用zip获取尽可能多的值(不超过N):

r = [ v for v,_ in zip(generator(),range(N)) ]

或者,如果允许您使用库,您可以使用itertools中的islice:

r = [*islice(generator(),10)]

你想这样做吗

def take(g, n):
    return [next(g) for _ in range(n)]

它将生成器g和计数n作为参数,并返回包含g的前n个值的列表

相关问题 更多 >