迭代器
迭代是訪問集合元素的一種方式克懊。迭代器是一個(gè)可以記住遍歷的位置的對象洋丐。迭代器對象從集合的第一個(gè)元素開始訪問豪诲,直到所有的元素被訪問完結(jié)束吊圾。迭代器只能往前不會(huì)后退达椰。
可迭代對象
以直接作用于 for 循環(huán)的數(shù)據(jù)類型有以下幾種:
一類是集合數(shù)據(jù)類型,如 list 项乒、 tuple 啰劲、 dict 、 set 檀何、 str 等蝇裤;
一類是 generator ,包括生成器和帶 yield 的generator function频鉴。
這些可以直接作用于 for 循環(huán)的對象統(tǒng)稱為可迭代對象: Iterable 栓辜。
判斷是否可以迭代
可以使用 isinstance() 判斷一個(gè)對象是否是 Iterable 對象
迭代器
可以被next()函數(shù)調(diào)用并不斷返回下一個(gè)值的對象稱為迭代器:Iterator。
可以使用 isinstance() 判斷一個(gè)對象是否是 Iterator 對象:
iter()函數(shù)
生成器都是 Iterator 對象垛孔,但 list 藕甩、 dict 、 str 雖然是 Iterable 周荐,卻不是 Iterator 狭莱。
把 list 、 dict 概作、 str 等 Iterable 變成 Iterator 可以使用 iter() 函數(shù):
凡是可作用于 for 循環(huán)的對象都是 Iterable 類型腋妙;
凡是可作用于 next() 函數(shù)的對象都是 Iterator 類型
集合數(shù)據(jù)類型如 list 、 dict 讯榕、 str 等是 Iterable 但不是 Iterator 骤素,不過可以通過 iter() 函數(shù)獲得一個(gè) Iterator 對象。