1. 程式人生 > >Python迭代器定義及用法詳解

Python迭代器定義及用法詳解

在這裡插入圖片描述

可迭代物件
Python中以直接作用於 for 迴圈的資料型別有以下幾種:
一類是集合資料型別,如 list 、 tuple 、 dict 、 set 、 str 等;
一類是 generator ,包括生成器和帶 yield 的generator function。
這些可以直接作用於 for 迴圈的物件統稱為可迭代物件: Iterable 。
判斷是否可以迭代
可以使用 isinstance() 判斷一個物件是否是 Iterable 物件而生成器不但可以作用於 for 迴圈,還可以被 next() 函式不斷呼叫並返回下一個值,直到最後丟擲 StopIteration 錯誤表示無法繼續返回下一個值了。
迭代器


可以被next()函式呼叫並不斷返回下一個值的物件稱為迭代器:Iterator。
可以使用 isinstance() 判斷一個物件是否是 Iterator 物件:
iter()函式
生成器都是 Iterator 物件,但 list 、 dict 、 str 雖然是 Iterable ,卻不是 Iterator 。
把 list 、 dict 、 str 等 Iterable 變成 Iterator 可以使用 iter() 函式
最後
凡是可作用於 for 迴圈的物件都是 Iterable 型別;
凡是可作用於 next() 函式的物件都是 Iterator 型別集合資料型別如 list 、 dict 、 str 等是 Iterable 但不是 Iterator ,不過可以通過 iter() 函式獲得一個 Iterator 物件。
文章來自:
https://www.itjmd.com/news/show-5321.html