可迭代物件(iterable):可以逐次返回其成員的項的物件。所有序列型別(list、str、tuple、range)、非序列型別、已經定義了__iter__()方法或實現了__getitem__()的任意的自定義類物件。可迭代物件可用於for迴圈、以及需要序列的地方(zip()、map()函式等等)。
迭代器(iterator):表示一連串資料流的物件。可以使用內建函式iter()生成乙個iterator物件,此函式返回的迭代器只能做一次性的遍歷,也就是說把迭代器中的元素都訪問一次之後,此迭代器就不包含元素了。呼叫迭代器的__next__()方法可以依次返回其包含的值。
從圖中可以看到,建立了包含三個元素的列表。使用iter()函式返回a的迭代器。呼叫迭代器本身的__next__()方法,每呼叫一次返回乙個值。當前三次遍歷完a列表中的值之後再次呼叫就會印發錯誤。內建函式next()和__next__()函式也是一樣。
上圖中使用for迴圈訪問迭代器,可以看到第一次遍歷完元素之後,迭代器就變成乙個空的迭代器了。
itertools這個庫中有許多的迭代器生成函式,包含無窮迭代器、根據最短輸入序列長度停止的迭代器、排列組合迭代器這三種。
python 迭代器 python迭代器
迭代器 可以直接作用for迴圈的資料型別 我們已經知道,可以直接作用for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function 可迭代物件定義 這些可以直接作用fo...
python的迭代器 Python 迭代器
迭代器 迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可迭代物件 以直接作用於 for 迴圈的資料型別有以下幾種 一類是集合資料型別,如 list tuple dict set str 等...
python的迭代器 python 迭代器
在介紹迭代器之前,先說明下迭代的概念 迭代 通過for迴圈遍歷物件的每乙個元素的過程。python的for語法功能非常強大,可以遍歷任何可迭代的物件。在python中,list tuple string dict set bytes都是可以迭代的資料型別。可以通過collections模組的iter...