**生成器一定是迭代器,但是迭代器不一定是生成器
??isinstance() 判斷乙個物件是否是 iterator 物件:
in [56]: from collections import iterator
in [57]: isinstance((x for x in range(10)), iterator)
out[57]: true
in [58]: isinstance(, iterator)
out[58]: false
in [59]: isinstance({}, iterator)
out[59]: false
in [60]: isinstance('abc', iterator)
out[60]: false
in [61]: isinstance(100, iterator)
out[61]: false
生成器都是 iterator 物件,但 list 、 dict 、 str 雖然是 iterable,卻不是 iterator
把 list 、 dict 、 str 等 iterable 變成 iterator 可以使用 iter() 函式:
in [62]: isinstance(iter(), iterator)
out[62]: true
in [63]: isinstance(iter('abc'), iterator)
out[63]: true
凡是可作用於 for 迴圈的物件都是 iterable 型別;凡是可作用於 next() 函式的物件都是 iterator 型別
集合資料型別如 list 、 dict 、 str 等是 iterable 但不是 iterator ,不過可以通過 iter() 函式獲得乙個 iterator 物件。
python程式設計 2 迭代器,生成器
1迭代器 iterator 迭代是python最強大的功能之一,是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。迭代器有兩個基本的方法 iter 和 next 字串,列表或元組物件都可用於建立迭...
Python 迭代器 生成器
可以直接作用於for迴圈的物件,統稱為可迭代物件 iterable。iterator物件表示的是乙個資料流,iterator物件可以被next 函式呼叫並不斷返回下乙個資料,直到沒有資料時丟擲stopiteration錯誤。可以把這個資料流看做是乙個有序序列,但我們卻不能提前知道序列的長度,只能不斷...
python 迭代器,生成器
什麼事迭代 可直接用作與for迴圈的物件統稱為可迭代物件 可以被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器,所有的iterable均可以通過內建函式iter 來轉變為iterator。對於迭代器來講,有乙個next 就夠了。在你使用for和in語句時,程式就會自動呼叫即將被處理的物件的可...