Python的生成器和迭代器有什麼區別?
當我們學習Python的時候,會遇到很多專業的術語及工具,而對於這些很多人並不是很瞭解,比如說生成器和迭代器,Python的生成器和迭代器有什麼區別?這是很多人都比較疑惑的問題,我們來看看吧。
迭代器是一個更抽象的概念,任何物件,如果它的類有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-2777329/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 迭代器和生成器區別是什麼?Python學習!Python
- 生成器與迭代器的區別
- 什麼是Python的迭代器和生成器?(附程式碼)Python
- Python入門之迭代器與生成器的區別Python
- Python的迭代器和生成器Python
- 什麼是Python直譯器?和Python IDE有什麼區別?PythonIDE
- Java和Python是什麼?有什麼區別?JavaPython
- python的模組和類有什麼區別Python
- python和nodejs有什麼區別PythonNodeJS
- Python語言中=和==有什麼區別?Python
- 1.5.4 Python迭代器和生成器Python
- python迭代器和生成器的總結Python
- Python和C語言有什麼區別?PythonC語言
- python3.7 迭代器和生成器Python
- Java虛擬機器(JVM)和Python直譯器有什麼區別?Java虛擬機JVMPython
- *和body有什麼區別
- python中的列表和元組有什麼區別Python
- python 生成器&迭代器Python
- Python之裝飾器、迭代器和生成器Python
- Python生成器、迭代器、可迭代物件Python物件
- Python IDE和直譯器有什麼區別?Python入門教程PythonIDE
- python和Java、C、ruby、PHP有什麼區別?PythonJavaPHP
- Python和C語言有什麼區別?分析!PythonC語言
- cookie和session有什麼區別?Python學習!CookieSessionPython
- Python指令碼和網頁有什麼區別?Python指令碼網頁
- PHP的迭代器和生成器PHP
- 草根學Python(七) 迭代器和生成器Python
- cython和python分別是什麼?區別有哪些?Python
- python迭代器是什麼Python
- 【Python入門教程】SQL和Python有什麼區別?PythonSQL
- Python和其他流行的程式語言有什麼區別?Python
- 物理伺服器和VPS有什麼區別。伺服器
- FPGA和微控制器有什麼區別呢?FPGA
- python is和==的區別是什麼?Python
- Python和Go是什麼?它們之間有什麼區別?PythonGo
- 什麼是python?與PHP有什麼區別?PythonPHP
- Cache 和 Buffer 有什麼區別?
- mongodb和mysql有什麼區別MongoDBMySql