python 之可迭代物件,迭代器與生成器

2021-10-23 08:51:37 字數 1449 閱讀 7446

所謂可迭代物件( iterable),簡而言之,就是可以被for迴圈遍歷的物件,例如元組,列表,字典,集合等。

注:可迭代物件包含迭代器

item =

["張三"

,"李四"

,"王五"

]for person in item:

#迭代獲取item中的專案值

print

(person)

張三

李四王五

迭代器是可迭代物件的一種形式,迭代器建立在可迭代物件的基礎上,使用**iter()方法生成該物件的迭代器,使用next()方法返回迭代器物件中下乙個值

話不多說,**奉上

item =

["張三"

,"李四"

,"王五"

]#可迭代物件

item_iter=

iter

(item)

#獲取迭代器

print

(next

(item_iter)

)print

(next

(item_iter)

)print

(next

(item_iter)

)print

(next

(item_iter)

)

stopiteration #報錯

張三李四

王五

當迭代器迭代完成後再試圖獲取迭代器中的物件,則報錯(stopiteration)

生成器顧名思義就是生成某些可迭代的器具,生成器是一種特殊的迭代器。

它不需要我們手動輸入迭代物件,而是由計算機邊計算邊生成,在順序生成的過程中自動的改變物件當前的迭代值。

生成器關鍵字:yield

有關yield:我們知道 在一般的迭代過程如for迴圈遍歷中,迭代是一路到底不可停頓的,而yield 則很好的實現了在迭代位置停止的需求,類似於單步除錯。

def

gener()

:print

("生成器呼叫"

)yield

"我在位置1停止"

#return

yield

"我在位置2停止"

#return

gener=gener(

)print

(next

(gener)

)#一次呼叫

print

(next

(gener)

)#二次呼叫

生成器呼叫

我在位置1停止

我在位置2停止

Python之可迭代物件 迭代器

python的特色之一是基於協議實現功能。比如改變乙個加號 的行為,在c 中需要操作符過載,在python中則是重寫 add 方法。為了描述可迭代物件和迭代器,python提供了兩個魔法方法,分別是 iter 和 next 又為了支援for.in.行為,牽扯進了 getitem 眾所周知使用for迴...

PYTHON 迭代器 可迭代物件

通過重複執行的 處理相似的資料集的過程,並且本次迭代的處理資料要依賴上一次的結果繼續往下做,上一次產生的結果為下一次產生結果的初始狀態,如果中途有任何停頓,都不能算是迭代。1 非迭代例子 loop 0 while loop 3 print hello world loop 1 2 迭代例子 loop...

python迭代 可迭代物件與迭代器物件

問題舉例 某軟體要求,從網路抓取各個城市的氣溫資訊,並依次顯示 北京 15 22 上海 18 23 如果一次抓取所有城市氣溫資訊再顯示,顯示第乙個城市的氣溫時會由很長的延時,並且浪費儲存空間,我們期望以 用時訪問 的策略,並且把所有城市的氣溫資訊封裝 到乙個物件裡,可用for語句進行迭代。來個栗子 ...