由python内置函数iter得到一个迭代器对象, 由可迭代对象得到迭代器
l = ['1', '2', '3', '4']
s = 'dimples'
for x in l:
print x
- 列表和字符串是可迭代对象
- 列表满足了特殊的接口: l.__iter__()
- 列表调用iter(l),实际上内部调用了l.__iter__()
- 字符串并没有这个方法,但是有s.__getitem__()方法
t = iter(l)
print t.next()
print t.next()
print t.next()
print t.next()
输出:
1
2
3
4
总结:
**for循环工作流程**:
- 先由 l 得到一个t(iter(l))对象,
- 然后不停的调next,
- 直到最终捕获到一个StopIteration的异常,跳出整个for循环