Python 如何打印发电机的输出

Python 如何打印发电机的输出,python,generator,Python,Generator,当我运行代码时,我得到以下输出 如何打印输出 def firstn(n): num=0 while num < n: yield num num=num+1 sum_of_first_n=sum(firstn(10)) print(firstn(3)) def firstn(n): num=0 当num

当我运行代码时,我得到以下输出

如何打印输出

def firstn(n):
    num=0
    while num < n:
        yield num
        num=num+1


sum_of_first_n=sum(firstn(10))
print(firstn(3))
def firstn(n):
num=0
当num
一般来说:

print(list(firstn(n)))
确保生成器不是无限的。如果您不确定,请使用以下方法:

import itertools as it

print(list(it.islice(firstn(n), 100)))

打印到前100个元素。

有不同的方法,但基本上必须通过迭代器进行迭代。最简单的方法可能是使用列表理解:

print(list(firstn(3)))
但是,如果您希望为
循环编写一个
,以实现这一点(并使其每行包含一个元素):

但是,应该注意,遍历生成器会消耗它,如果没有检索新生成器的方法(例如,如果将生成器作为函数调用的参数),则必须将值-fx存储在数组中:

l = list(firstn(3))

for e in l:
    print(e)

for e in l:
    do_something(e)

print(list(firstn(3)))
SO欢迎光临。您是否介意正确格式化您的代码,以便其他人也能从中受益?
l = list(firstn(3))

for e in l:
    print(e)

for e in l:
    do_something(e)