來源:北大青鳥總部 2020年08月24日 13:36

何謂可迭代對象,何謂迭代器,它們之間關系如何?先談談這幾個概念
可迭代對象(Iterables)
__iter __()方法,該方法必須返回迭代器對象
而 __next()__方法,則借助它調用的迭代器
可迭代對象可以是任何對象,不一定是可以返回迭代器的數據結構,其主要目的是返回其所有元素
可迭代可表示有限和無限的數據源
一個可迭代的對象將直接或間接定義兩個方法:
迭代器(Iterators)
python中的Iterator是一個對象,用于迭代列表,元組,字典和集合之類的可迭代對象
使用 iter() 方法初始化 Iterator 對象。 它使用 next()方法進行迭代
__iter(iterable)__ 方法 用于初始化迭代器,返回一個迭代器對象
next ( __next__ in Python 3)方法, next() 返回可迭代對象的下一個值,當我們使用for循環遍歷任何可迭代對象時,在內部它會使用 iter() 方法獲取一個迭代器對象,該對象進一步使用 next() 方法進行迭代。 此方法會在迭代結束引發 StopIteration表示迭代結束