python 迭代器

def add(s,x):
    return  s+x
    
def gen():
    for i in range(4):
        yield i
        
base = gen()

for n in [1,10]:
    base=(add(i,n) for i in base)
    
    
print(list(base))


n等於1時:

執行完base = (add(i, n) for i in base)

後base是:

i+n for i in [0,1,2,3]

接下來n=10:

base變爲i+n for i in (i+n for i in [0,1,2,3])

此時n等於10,再去計算base, base一直是個生成器。

其中print list(base) 是對生成器進行迭代,此時n是按照10來計算。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章