的輸出。當我運行代碼我得到以下輸出 如何打印生成
如何打印的打印輸出?
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
while num < n:
yield num
num=num+1
sum_of_first_n=sum(firstn(10))
print(firstn(3))
一般:
print(list(firstn(n)))
要確保你的發電機是不是無限的。如果您不確定,請使用以下內容:
import itertools as it
print(list(it.islice(firstn(n), 100)))
可以打印最多100個元素。
這樣做有不同的方式,但基本上你必須遍歷迭代器。最簡單的方法可能是使用列表理解:
print(list(firstn(3)))
,但如果你願意,你可以寫一個for
循環來做到這一點(和得到它FX每行一個元素):
for e in firstn(3):
print(e)
一但應該請注意,迭代通過生成器會消耗它,如果你沒有檢索新生成器的方法(例如,如果你將生成器作爲函數調用的參數),則必須將值fx存儲在數組中:
l = list(firstn(3))
for e in l:
print(e)
for e in l:
do_something(e)
'print(list(firstn(3)))' – Andrey
歡迎來到SO。你是否介意正確地格式化你的代碼,以便其他人也可以從中受益? – glglgl