5 3 迭代器和生成器

2021-09-28 18:00:07 字數 1460 閱讀 1988

迭代器和生成器優點是可以解決記憶體不夠,或者資源太大無法完成一步操作的問題,有能夠縮小占用記憶體好處。下面我們分開來講一下迭代器和生成器的構造以及把函式構造成乙個生成器。

迭代器可以用於列表,元組,集合以及字典

mlist =[1

,2,3

,4,5

,6]it =

iter

(mlist)

#it迭代器,it索引為0

'''iter是一種型別,會自動記錄索引次數'''

print

(next

(it)

)#輸出1

print

(next

(it)

)#輸出2

print

(next

(it)

)#輸出3

print

(next

(it)

)#輸出4

mylist =

(x for x in

range

(100))

#mylist型別為生成器型別

print

(next

(mylist)

)#輸出為1

print

(next

(mylist)

)#輸出為2

print

(next

(mylist)

)#輸出為3

print

(next

(mylist)

)#輸出為4

defgo(

)print(1

)yield

1'''加上yield的函式返回值後,變成了乙個生成器'''

print(3

) yidle 4

print(2

)yield

5print

(500

)yield

74x = go(

)print

(next

(x))

#第一次執行列印1,返回1

print

(next

(x))

#第二次執行列印3,返回4

print

(next

(x))

#第三次執行列印2,返回5

print

(next

(x))

#第四次執行列印500,返回74

**例如:**把函式構造成乙個生成器

def

createlist()

:for i in

range

(100):

print

(i)yield i

y = createlist(

)'''這時候y就變成了生成器'''

生成器和迭代器

可以直接作用於for迴圈的物件稱為可迭代物件 iterable.可以用isinstance 判斷乙個物件是否是iterable物件。isinstance iterable true isinstance iterable true isinstance 235,iterable false 而生成器...

迭代器和生成器

1 迭代器的概念 print dir 告訴我列表的所有用法 有雙下劃線的所有方法叫做雙下方法,是c語言已經寫好的方法。你可以用不止一種方法呼叫它。列表的用法變集合 set dir 求交集 set dir set dir set dir 求列表,字典,字串它們的用法的交集 他們共同的用法 iterab...

生成器和迭代器

1.iterator 迭代器 舉例 我們對list使用for for i in 1,2,3,4 print i 12 34對string物件使用for for ch in python print ch py thon對字典物件使用for for k in print k yx對檔案使用for fo...