1.凡事可用於for迴圈的物件都是iterable型別物件;
2.凡事可做用於next()函式的物件都是iterator型別物件,他們表示乙個惰性計算的序列;
3.集合資料型別list、dicr、str等是iterable物件不是iterator物件,但是可以通過呼叫iter()函式獲得乙個iterator物件;
4.python的for迴圈的本質就是通過不停呼叫next()函式實現,如:
for x in [1, 2, 3, 4, 5]:
pass
等價於:
# 首先獲得iterator物件:
it = iter([1, 2, 3, 4, 5])
# 迴圈:
while true:
try:
# 獲得下乙個值:
x = next(it)
except stopiteration:
# 遇到stopiteration就退出迴圈
break
發現光看文件學有點慢也好無聊。。 Python筆記 迭代器
我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。1 可以...
python迭代器筆記
迭代器的優點 迭代器訪問與for迴圈訪問非常相似,但是也有不同之處。對於支援隨機訪問的資料結構如元組和列表,迭代器並無優勢。因為迭代器在訪問的時候會丟失資料索引值,但是如果遇到無法隨機訪問的資料結構如集合時,迭代器是唯一訪問元素的方式 迭代器僅僅在訪問到某個元素時才使用該元素。在這之前,元素可以不存...
python筆記 迭代器
能被next 函式呼叫,並不斷返回下乙個值的物件稱為迭代器 iterator 迭代器物件 迭代器是訪問集合元素的一種方式,是python中最具特色的功能之一。迭代器可以記住訪問遍歷的位置,從集合的第乙個元素開始訪問,直到集合中的所有元素被訪問完畢。迭代器只能從前往後乙個乙個的遍歷,不能後退。迭代器的...