1. 程式人生 > >Python -- 面向物件進階之--迭代器

Python -- 面向物件進階之--迭代器

迭代器

迭代是訪問集合元素的一種方式。迭代器是一個可以記住遍歷的位置的物件。迭代器物件從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。

1. 可迭代物件

可以直接作用於for迴圈的資料型別有以下幾種:

一類是集合資料型別,如 list 、tuple 、dict 、set 、str 等;

一類是 generator,包括生成器和帶yield的generator function。

這些可以直接作用於for迴圈的物件統稱為可迭代物件Iterable

2. 判斷是否可以迭代

可以使用isinstance()判斷一個物件是否是Iterable物件:

3.迭代器

可以被next()函式呼叫並不斷返回下一個值的物件稱為迭代器:Iterator

可以使用isinstance()判斷一個物件是否是Iterator物件:

4.iter()函式

生成器都是Iterator物件,但list、dict、str雖然是Iterable,卻不是Iterator。把list、dict、str等Iterable變成Iterator可以使用iter()函式:

總結

凡是可作用於for迴圈的物件都是Iterable型別;
凡是可作用於next()函式的物件都是Iterator型別;
集合資料型別如list、dict、str等是Iterable但不是Iterator,不過可以通過iter()函式獲得一個Iterator物件。