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来计算。


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