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



这是我的方法

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

您想这样做吗?

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

它以生成器g和计数n为自变量,并返回一个包含g 的前n个值的列表

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

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

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

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

最新更新