Python攻關之迭代器

2021-10-03 01:30:07 字數 1122 閱讀 6502

生成器都是迭代器,迭代器不一定是生成器

迭代器包含生成器

list

tuple

dict string :iterable(可迭代物件)

l =[2

,2,3

,4] d =

iter

(l)#相當於l.__iter__()

print

(d)#

什麼是迭代器?

滿足兩個條件:1.有iter方法 2.有next方法

l = [2,2,3,4]

d = iter(l)

print(d)

print(next(d))

print(next(d))

print(next(d))

print(next(d))

print(next(d)) #stopiteration

注:通過生成器和迭代器的學習,我們可以知道:

for 迴圈內部三件事:

1.呼叫可迭代物件的iter方法返回乙個迭代器物件

2.不斷呼叫迭代器物件的next方法

3.處理stopiteration

for i in [1,2,34]:

iter([1,2,34])

**可以使用isinstance()判斷乙個物件是否是iterable(可迭代)物件:**

from collections import iterator,iterable

#iterator (迭代器)

#iterable (可迭代物件)

l = [2,2,3,4]

d = iter(l)

print(d)

#此時 這裡的 l 是可迭代物件 d 是迭代器

print(isinstance(l,list))

print(isinstance(l,iterable))

print(isinstance(l,iterator))

print(isinstance(d,iterator))

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 函式呼...