python可迭代对象和迭代器对象
由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循环