可以直接作用於for迴圈的資料型別有以下幾種:
一類是集合資料型別,如list、tuple、dict、set、str等;
一類是generator,包括生成器和帶yield的生成器函式。
這些可以直接作用於for迴圈的物件統稱為可迭代物件(iterable)。
python的for迴圈本質上就是通過不斷呼叫next()函式實現的
可以使用isinstance()判斷乙個物件是否是可迭代物件:
而生成器不但可以作用於for迴圈,還可以被next()函式不斷呼叫並返回下乙個值,直到最後丟擲stopiteration錯誤表示無法繼續返回下乙個值了。from collections import iterable
print(isinstance(,iterable))
>>>true
print(isinstance({}, iterable))
>>>true
print(isinstance('abc', iterable))
>>>true
print(isinstance((x for x in range(10)), iterable))
>>>true
print(isinstance(100, iterable))
>>>false
生成器都是迭代器,但list、dict、str雖然是可迭代物件,卻不是迭代器。from collections import iterator
print(isinstance(,iterator))
>>>false
print(isinstance({}, iterator))
>>>false
print(isinstance('abc', iterator))
>>>false
print(isinstance((x for x in range(10)), iterator))
>>>true
print(isinstance(100, iterator))
>>>false
把list、dict、str等可迭代物件變成迭代器可以使用iter()函式:
print(isinstance(iter('abc'),iterator))
>>>true
python中迭代器 python中的迭代器
如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代 iteration d for key in d print key ac b當我們使用for迴圈時,只要作用於乙個可迭代物件,for迴圈就可以正常執行,而我們不太關心該物件究竟是list還...
python中的迭代器
什麼是迭代器?迭代器是帶有next方法的簡單物件,當然也要實現 iter 函式。迭代器能在一串行的值上進行迭代,當沒有可供迭代時,next方法就會引發stopiteration 的異常。python中有很多的物件都是迭代器,例如 列表,元素,字串,檔案,對映,集合 如何使用迭代器?1.for 變數 ...
python中的迭代器
python中的迭代器,正如python一樣簡單,任何物件只要擁有 iter 屬性即可,該屬性是乙個方法,且該方法返回乙個擁有 next 方法物件即可。任何物件必須滿足上面所述兩個原則才能成為迭代器。舉個例子 python中的生成器就實現了 iter 方法,同時它也實現了 next 方法,從這裡我們...