Python迭代器生成器,模組和包

2022-08-21 03:09:09 字數 763 閱讀 7510

1.迭代器和生成器

2.模組和包

1.迭代器

迭代器物件要求支援迭代器協議的物件,在python中,支援迭代器協議就是實現物件的__iter__()和__next__()方法。

其中__iter__()方法返回迭代器物件本身;__next__()方法返回容器的下乙個元素,在結尾時引發stopiteration異常。

2.生成器generator

在python中,使用生成器可以很方便的支援迭代器協議。

生成器通過生成器函式產生,生成器函式可以通過常規的def語句來定義,但是不用return返回,而是用yield一次返回乙個結果,在每個結果之間掛起和繼續它們的狀態,來自動實現迭代協議。

也就是說,yield是乙個語法糖,內部實現支援了迭代器協議,同時yield內部是乙個狀態機,維護著掛起和繼續的狀態。

生成器函式返回生成器的迭代器。 「生成器的迭代器」這個術語通常被稱作」生成器」。

要注意的是生成器就是一類特殊的迭代器。作為乙個迭代器,生成器必須要定義一些方法,

其中乙個就是__next__()。如同迭代器一樣,我們可以使用__next__()函式來獲取下乙個值。

在乙個 generator function 中,如果沒有 return,則預設執行至函式完畢,如果在執行過程中 return,

則直接丟擲 stopiteration 終止迭代。  

Python迭代器和生成器

先說迭代器,對於string list dict tuple等這類容器物件,使用for迴圈遍歷是很方便的。在後台for語句對容器物件呼叫iter 函式,iter 是python的內建函式。iter 會返回乙個定義了next 方法的迭代器物件,它在容器中逐個訪問容器內元素,next 也是python的...

Python迭代器和生成器

迭代器是訪問集合元素的一種方法 是可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問 他有兩個基本的方法,iter 和next 字串,列表或遠足物件都可以用於建立迭代器 list1 1,2,3,4 it1 iter list1 建立迭代器物件 print next ...

python 迭代器和生成器

迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退,不過這也沒什麼,因為人們很少在迭代途中往後退。另外,迭代器的一大優點是不要求事先準備好整個迭代過程中所有的元素。迭代器僅僅在迭代到某個元素時才計算該元素,而在這之前或之後,元素可...