迭代器和生成器區別是什麼?Python學習!

老男孩IT教育機構發表於2020-10-29

  迭代器和生成器區別是什麼?相信很多人在初學Python的時候對它們都很好奇,接下來我們一起來看看它們的區別吧。

  迭代器是一個更抽象的概念,任何物件,如果它的類有next方法和iter方法返回自己的本身,對於string、list、dict、tuple等這類容器物件,使用for迴圈會更加方便。在後臺for語句對容器物件呼叫iter()函式,iter()是Python內建函式。

  iter()會返回一個定義了next()方法的迭代器物件,在容器中逐個訪問容器內元素,next()也是Python的內建函式,無後續元素時,next()會丟擲一個StopIteration異常

  生成器是建立迭代器簡單而強大的工具,像正規函式,在需要返回資料的時候使用yield語句,每次next()被呼叫時,生成器會返回它脫離的位置。

  迭代器和生成器區別主要在於生成器可以做迭代器的事情,生成器是一種特殊的迭代器。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2730909/,如需轉載,請註明出處,否則將追究法律責任。

相關文章