叠代器和iter()函數
1、先來個樣例,有個初步的印象:
myTuple=(123,‘xyz‘,45.67)
i=iter(myTuple)
i.next()
123
i.next()
‘xyz‘
i.next()
45.67
i.next()
Traceback (most recent call last):
File "", line 1, in?
StopIteration
上面的代碼中通過iter()函數顯式的使用了叠代器,而叠代器就是一個包括了next函數的類,同一時候
平時我們在使用如:
for i in seq:
do_something_to(i)
時也使用到了叠代器。其真實的工作代碼應該例如以下:
fetch=iter(seq)
while True:
try:
i = fetch.next()
except StopIteration:
break
do_something_to(i)
而。平時我們在顯式的使用叠代器時也應該像上面一樣將叠代器包裹在try…except…中
2、使用的類型
除元組外,列表、字典、文件等都能夠使用,
如字典類型
for eachkey in myDict:
do_something_to(i)
字典的叠代器會遍歷它的鍵
3、註意事項
在叠代可變對象時,不要試圖改動它們。
叠代器和iter()函數