2013-02-21 110 views
1

(在Python 3.2)没有错误用尽迭代器,但在For循环

miters = map(abs,(-1,2,5)) 
for i in miters: 
    print(i) 
1 
2 
5 

next(miters) 
--> StopIteration 

for i in miters: 
    print(i) 
--> ?? Nothing Happens.. 

为什么我不能在第二个for循环得到“StopIteration异常”错误消息? '斜接'已经用尽,所以如果我再次循环,我认为会有'StopIteration'...

任何人都可以告诉我为什么?

+0

@MartijnPieters不错的答案:)书签那一个 – 2013-02-21 13:38:09

回答

4

for循环使用StopIteration来确定何时停止。所以它吞下异常并立即停止。

+0

谢谢!现在我明白了。 – nemonein 2013-02-22 06:42:33