这是我的方法
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)]