迭代器和生成器區(qū)別是什么?相信很多人在初學Python的時候對它們都很好奇,接下來我們一起來看看它們的區(qū)別吧。 迭代器是一個更抽象的概念,任何對象,如果它的類有next方法和iter方法返回自己的本身,對于string、list、dict、tuple等這類容器對象,使用for循環(huán)會更加方便。在后臺for語句對容器對象調用iter()函數(shù),iter()是Python內置函數(shù)。 iter()會返回一個定義了next()方法的迭代器對象,在容器中逐個訪問容器內元素,next()也是Python的內置函數(shù),無后續(xù)元素時,next()會拋出一個StopIteration異常 生成器是創(chuàng)建迭代器簡單而強大的工具,像正規(guī)函數(shù),在需要返回數(shù)據(jù)的時候使用yield語句,每次next()被調用時,生成器會返回它脫離的位置。 迭代器和生成器區(qū)別主要在于生成器可以做迭代器的事情,生成器是一種特殊的迭代器。 |
|
來自: 老男孩IT教育 > 《Python培訓》