迭代器是訪問集合元素的一種方式
迭代器是乙個可以記住遍歷的位置的物件。
迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。
迭代器有兩個基本的方法:iter()和next()
字串,列表或元組物件都可用於建立迭代器
特點:
訪問者不需要關心迭代器內部的結構,僅需通過next()方法不斷去取下乙個內容
不能隨機訪問集合中的某個值 ,只能從頭到尾依次訪問
訪問到一半時不能往回退
便於迴圈比較大的資料集合,節省記憶體
>>> li = [1,2,3]>>> it =iter(li)
(next(it))
1>>> print
(next(it))
2>>> print
(next(it))
3
迭代器可以使用for迴圈進行遍歷
>>> li = [1,2,3]>>> it =iter(li)
>>> for i in
it:...
(i)...12
3
乙個函式呼叫時返回乙個迭代器,那這個函式就叫做生成器(generator)
如果函式中包含yield語法,那這個函式就會變成生成器
生成器運作:
當達到乙個真正的返回或者函式結束沒有更多值返回(當呼叫next()),乙個stopiteration異常就會丟擲
deffunc():
yield 1
yield 2
yield 3
yield 4
>>> temp =func()>>> temp.__next__()1
>>> temp.__next__()2
>>> temp.__next__()3
>>> temp.__next__()4
>>> temp.__next__
()traceback (most recent call last):
file
"", line 1, in
stopiteration
deffrang(n):
start =0
while start yield
start
start += 1valu = frang(5)
n1 = valu.__next__
()n2 = valu.__next__
()print(n1,n2)
迭代器及生成器
user bin env python coding utf 8 1迭代器必需遵循迭代協議,需要使用iter轉換為遵循迭代協議,必須能夠使用next方法。for相當於進行了iter和next兩個方法。把序列 轉換為了可迭代序列 例1 x hellow c x.iter print type c pr...
Python 迭代器 生成器
可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...
python 迭代器,生成器
什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...