來源:北大青鳥總部 2020年08月24日 13:36
何謂可迭代對象,何謂迭代器,它們之間關(guān)系如何?先談?wù)勥@幾個(gè)概念
可迭代對象(Iterables)
__iter __()方法,該方法必須返回迭代器對象
而 __next()__方法,則借助它調(diào)用的迭代器
可迭代對象可以是任何對象,不一定是可以返回迭代器的數(shù)據(jù)結(jié)構(gòu),其主要目的是返回其所有元素
可迭代可表示有限和無限的數(shù)據(jù)源
一個(gè)可迭代的對象將直接或間接定義兩個(gè)方法:
迭代器(Iterators)
python中的Iterator是一個(gè)對象,用于迭代列表,元組,字典和集合之類的可迭代對象
使用 iter() 方法初始化 Iterator 對象。 它使用 next()方法進(jìn)行迭代
__iter(iterable)__ 方法 用于初始化迭代器,返回一個(gè)迭代器對象
next ( __next__ in Python 3)方法, next() 返回可迭代對象的下一個(gè)值,當(dāng)我們使用for循環(huán)遍歷任何可迭代對象時(shí),在內(nèi)部它會(huì)使用 iter() 方法獲取一個(gè)迭代器對象,該對象進(jìn)一步使用 next() 方法進(jìn)行迭代。 此方法會(huì)在迭代結(jié)束引發(fā) StopIteration表示迭代結(jié)束