所謂可迭代物件( 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語句進行迭代。來個栗子 ...