生成器和迭代器

2022-03-18 17:48:25 字數 434 閱讀 2703

實現了__iter__和__next__方法的物件都稱為迭代器。迭代器是乙個有狀態的物件,在呼叫next() 的時候返回下乙個值,如果容器中沒有更多元素了,則丟擲stopiteration異常。

迭代器是一種lazy load的模式,只有在呼叫時才生成值,沒有呼叫的時候就等待下一次呼叫。

生成器: 生成器是乙個返回迭代器的函式

幾個大是大非的問題要明確:

實現了_iter_()方法的物件,叫做【可迭代物件】

實現了next()方法的物件,叫做【迭代器物件】

往往【迭代器物件】也同時實現了_iter_()方法,同時成為【可迭代物件】

生成器就是乙個迭代器,它是用生產器函式那種語法,來得到的乙個【迭代器物件】

生成器和迭代器

可以直接作用於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...