我們已知的可以迭代的值包括,基本資料型別如list
、tuple
、dict
、set
、str
等,和generator
,者皆通稱為可迭代物件,即iterable
,可以通過isinstance()
判斷值是否是可迭代物件
>>> from collections import iterable
>>> isinstance(, iterable)
true
>>> isinstance({}, iterable)
true
而迭代器是指可以被for迴圈,且可以用next()
呼叫的值,我們也可以使用isinstance()
判斷,是否是迭代器
>>> from collections import iterator
>>> isinstance((x for x in range(10)), iterator)
true
>>> isinstance(, iterator)
false
>>> isinstance({}, iterator)
false
>>> isinstance('abc', iterator)
false
因為list
、dict
、str
等資料型別,不能使用next()
方法所以不是迭代器,但是可以通過iter()
方法將其變成迭代器
>>> isinstance(iter(), iterator)
true
>>> isinstance(iter('abc'), iterator)
true
iterator
最主要的用途,就在於iterator
是惰性的,在沒有用到那個值,時不進行計算儲存,節省記憶體且可以用來儲存乙個無限大的資料流 python高階特性5 迭代器 Iterator
python五個高階特性 切片 迭代列表生成式 生成器迭代器 我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用...
python 迭代器 python迭代器
迭代器 可以直接作用for迴圈的資料型別 我們已經知道,可以直接作用for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function 可迭代物件定義 這些可以直接作用fo...
python的迭代器 Python 迭代器
迭代器 迭代是訪問集合元素的一種方式。迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可迭代物件 以直接作用於 for 迴圈的資料型別有以下幾種 一類是集合資料型別,如 list tuple dict set str 等...