Python中迭代器的用法

2021-10-03 15:38:34 字數 1743 閱讀 8622

1. 可迭代物件

物件:python中一切皆物件。乙個實實在在存在的值就叫物件。比如:a = 1, a就叫物件。

可迭代:更新迭代。重複的、迴圈的乙個過程。更新迭代每次都有新的內容。

字面意思:可以進行迴圈更新的乙個實實在在的值。

專業角度:內部含有__iter__方法的物件稱之為可迭代物件。

# 獲取乙個物件的所有方法

s1 =

'lucy'

print

(dir

(s1)

)

'__iter__'

indir

(物件)

使用可迭代物件的優點:

缺點:

li =[1

,2,3

]for i in li:

print

(i)# 看似列表可以for迴圈直接取值,其實不是的。裡面進行了一步轉化,把可迭代物件轉化成了迭代器。可迭代物件不能直接取值。

2. 迭代器

判斷是否是迭代器

(

'__iter__'

indir

(物件)

)and

('__next__'

indir

(物件)

)

with

open

('text'

,'w'

, encoding=

'utf8')as

file

:print((

'__iter__'

indir

(file))

and(

'__next__'

indir

(file))

)# true

s =

'lucy'

obj =

iter

(s)# s.__iter__()

print

(next

(obj)

)# print(obj.__next__())

迭代器的缺點

li =[11

,22,33

,44,55

,66,77

,88,99

]obj =

iter

(li)

for i in

range(3

):print

(next

(obj)

)for i in

range(4

):print

(next

(obj)

)

可迭代物件與迭代器對比

while迴圈模擬for迴圈機制

li =[11

,22,33

,44,55

,66,77

,88,99

]obj =

iter

(li)

while1:

try:

print

(next

(obj)

)except stopiteration:

break

python中迭代器 python中的迭代器

如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代 iteration d for key in d print key ac b當我們使用for迴圈時,只要作用於乙個可迭代物件,for迴圈就可以正常執行,而我們不太關心該物件究竟是list還...

Python中的迭代器

可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的生成器函式。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable python的for迴圈本質上就是通過不斷呼叫n...

python中的迭代器

什麼是迭代器?迭代器是帶有next方法的簡單物件,當然也要實現 iter 函式。迭代器能在一串行的值上進行迭代,當沒有可供迭代時,next方法就會引發stopiteration 的異常。python中有很多的物件都是迭代器,例如 列表,元素,字串,檔案,對映,集合 如何使用迭代器?1.for 變數 ...