python 迭代器,生成器 2

2021-08-30 11:42:30 字數 973 閱讀 6340

**生成器一定是迭代器,但是迭代器不一定是生成器

??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語句時,程式就會自動呼叫即將被處理的物件的可...