python之迭代器

2022-06-23 00:00:11 字數 1232 閱讀 6292

1、可迭代物件:

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

一類是generator(生成器),包括帶yield的generator function;

上述的集合資料型別以及generator都可以直接作用於for迴圈,所以統稱為可迭代物件iterable。

使用isinstance( )來判斷乙個物件是否是iterable:

from collections.abc import

iterable

t1 =isinstance(,iterable)

print

(t1)

t2 =isinstance({},iterable)

print

(t2)

t3 =isinstance((),iterable)

print

(t3)

t4 = isinstance(5,iterable)

print(t4)

>>>true

>>>true

>>>true

>>>false

可以使用isinstance( )判斷乙個物件是否是iterator物件;生成器是iterator物件,list、dict、str雖然是iterable但不是iterator迭代器。

把list、dict、str可迭代物件變成迭代器可以使用iter( )函式

>>>isinstance (iter( [ ] ), iterator)

true

>>>isinstance (iter(『abc』, iterator)

true

凡是可作用於for迴圈的物件都是iterable型別,凡是可作用於next( )函式的物件都是iterator型別,iterable可通過iter( )函式獲得乙個iterator物件;

python的for迴圈本質上就是通過不斷呼叫next( )函式實現的

例如:

t6 = iter([1,2,3,4,5,6])

whiletrue:

try:

x =next(t6)

print(x)

exceptstopiteration:

break

完全等價於:

for i in [1,2,3,4,5,6]:

print(i)

python之迭代器

可迭代物件就是序列觀念的通用化,如果物件是實際儲存的序列,或者可以在迭代工具環境 eg for迴圈 中一次產生乙個結果的物件,就可看成是可迭代的。可迭代物件包括實際序列和按照需求而計算的虛擬序列。常見的迭代工具 for迴圈 列表解析 in成員關係測試以及map內建函式等。1.檔案迭代器 readli...

Python之迭代器

我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。可以使用...

python之迭代器

首先需要搞清楚兩個概念 可迭代,迭代器,兩者不能混為一談。可以直接作用於for迴圈的物件統稱為可迭代物件 iterable python裡可以用isinstance iterable 來檢測第乙個引數是不是可迭代的 這裡第乙個引數是乙個列表 注意,可迭代和 迭代器 是不一樣的!可以被next 函式呼...