一、迭代器
迭代器即迭代的工具,
迭代是乙個重複的過程,每次重複即是一次迭代,並且每次迭代的結果都是下一次的初始值
二、為什麼會有迭代器,什麼是可迭代物件,什麼是迭代器物件
1、為什麼會有迭代器:
對於序列型別:字串、列表、元組,我們可以採取索引的方式迭代取出元素
對於:字典、集合、檔案等型別是沒有索引的,若還想取出其內部包含的元素,則必須找出一種不依賴於索引的迭代方式,這就是迭代器
2、可迭代物件:
可迭代物件指的是內建有__iter__方法的物件,即obj.__iter__
3、迭代器物件:
可迭代物件執行obj.__iter__()得到的結果就是迭代器物件
迭代器物件指的是即內建有__iter__又內建有__next__方法的物件
迭代器物件一定是可迭代物件,而可迭代物件不一定是迭代器物件
4、迭代器物件的優點及缺點:
#優點:
- 提供一種統一的、不依賴於索引的迭代方式
- 惰性計算,節省記憶體
#缺點:
- 無法獲取長度(只有在next完畢才知道到底有幾個值)
- 一次性的,只能往後走,不能往前退
day18 迭代器協議和for迴圈工作機制
迭代器協議 物件必須提供乙個next方法,執行方法要麼返回迭代器中的下一項,要麼就引起乙個stopiteration異常,以終止迭代 只能往後走,不能往前退 可迭代物件 實現了迭代器協議的物件 實現方式 物件內部定義了乙個iter 方法 協議是一種約定,可迭代物件實現了迭代器協議,python的內部...
python 迭代器 python迭代器
迭代器 可以直接作用for迴圈的資料型別 我們已經知道,可以直接作用for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function 可迭代物件定義 這些可以直接作用fo...
Python學習之路 day 13 迭代器
一.迭代器介紹 1.什麼是迭代器 1.1.迭代器指的是迭代取值的工具 1.2.迭代是一重複的過程,每一次重複都是基於上一次的結果而來 單純的重複不是迭代 i 0 while true print i 迭代 重複 每次重複都是基於上一次的結果而進行 l a b c i 0while i len l p...