生成器(generator)是什麼,怎麼用,有什麼優點
列印0~10000個數字:
1、生成一個列表n,再迴圈列印1-10000個數字,這樣做會佔用系統的記憶體;
n = [i in [i in rang(0, 10000)]
for i in n:
print(i)
2、用下列生成器,就不用先生成列表,利用迴圈,每呼叫一次,就使用一次,不佔記憶體空間
def gen(max):
n=0
while n<=max:
n+=1
yield n
g = gen(10000)
就像使用迭代器一樣,使用返回值
for i in g:
print(i)
print(next(g))
print(next(g))
print(next(g))