Python入門之迭代器與生成器的區別
無論你是Python初學者還是愛好者,相信大家都聽說過迭代器與生成器,但是很多同學搞不懂Python迭代器與生成器到底是什麼?它們之間又有什麼樣的關係呢?接下來,小編透過這篇文章為大家介紹一下。
什麼是迭代器?
迭代是Python最強大的功能之一,是訪問集合元素的一種方式。
迭代器是一個可以記住遍歷的位置的物件。
迭代器物件從集合的第一個元素開始訪問,直到所有的元素被訪問完結束,迭代器只能往前不會後退。
迭代器有兩個基本的方法:iter()和next()。
什麼是生成器?
在Python中,使用了yield的函式被稱為生成器。
跟普通函式不同的是,生成器是一個返回迭代器的函式,只能用於迭代操作,更簡單點理解生成器就是一個迭代器。
在呼叫生成器執行的過程中,每次遇到yield時函式會暫停並儲存當前所有的執行資訊,返回yield的值,並在下一次執行next()方法時從當前位置繼續執行。
呼叫一個生成器函式,返回的是一個迭代器物件。
迭代器與生成器之間有什麼區別?
迭代器是一個更抽象的概念,任何物件,如果它的類有NEXTiter方法返回自己本身,對於string、list、dict、tuple 等這類容器物件,使用for迴圈遍歷是很方便的。在後臺For語言對容器物件條用iter()函式,iter()是Python的內建函式。iter()會返回一個定義了next()方法迭代器物件,在容器中逐個訪問容器的元素,next()也是Python的內建函式,next()會丟擲StopIteration異常。
生成器是創新迭代器的簡單而強大的工具,它們寫起來就好像正則函式,只是在需要返回資料的時候使用yield 語句。
迭代器協議,物件需要提供next()方法,它要麼返回迭代中的下一項,要麼就引起一個StopIteration異常,終止迭代。
可迭代物件,實現了迭代器協議物件。list、tuple、dict都是Iterable可迭代的物件,但不是Iterator迭代器物件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2766372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 生成器與迭代器的區別
- Python的生成器和迭代器有什麼區別?Python
- Python迭代器與生成器Python
- Python之可迭代物件、迭代器、生成器Python物件
- 迭代器和生成器區別是什麼?Python學習!Python
- 史上最全 Python 迭代器與生成器Python
- Python之裝飾器、迭代器和生成器Python
- python 生成器&迭代器Python
- python3基礎 之 迭代器與生成器,生成式Python
- 迭代器與生成器
- 《python-美藏篇》1.可迭代、迭代器與生成器Python
- Python迭代器&生成器&裝飾器Python
- 搞清楚 Python 的迭代器、可迭代物件、生成器Python物件
- Python語法—迭代器、生成器Python
- 1.5.4 Python迭代器和生成器Python
- python迭代器和生成器的總結Python
- 迭代器與可迭代物件的區別,以及iter()函式的使用。物件函式
- python_裝飾器——迭代器——生成器Python
- IL角度理解for 與foreach的區別——迭代器模式模式
- Python可迭代的物件與迭代器Python物件
- python3.7 迭代器和生成器Python
- 跟你深入剖析可迭代物件和迭代器的區別與聯絡物件
- Python IDLE和Python的區別!Python入門教程Python
- es6 快速入門 系列 —— 迭代器 (Iterator) 和 生成器 (Generator)
- Python入門:Python 2與Python3有什麼區別?Python
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- 好程式設計師Python培訓分享Python生成器與迭代器程式設計師Python
- 測開之資料型別· 第4篇《迭代器、生成器》資料型別
- Python函數語言程式設計系列012:惰性列表之生成器與迭代器Python函數程式設計
- 草根學Python(七) 迭代器和生成器Python
- Python基礎(四)——迭代器/物件,生成器Python物件
- 迭代器、生成器
- 迭代器,生成器
- 可迭代物件、迭代器、生成器物件
- Python進階:迭代器與迭代器切片Python
- ??Java開發者的Python快速進修指南:迭代器(Iterator)與生成器JavaPython
- 前端面試複習2:迭代器,生成器與非同步迭代器前端面試非同步
- Python學習筆記 - 迭代器和生成器Python筆記