python 18day 迭代器詳解

2022-01-16 16:48:04 字數 600 閱讀 2596

一、迭代器

迭代器即迭代的工具,

迭代是乙個重複的過程,每次重複即是一次迭代,並且每次迭代的結果都是下一次的初始值

二、為什麼會有迭代器,什麼是可迭代物件,什麼是迭代器物件

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...