python可迭代对象和迭代器对象

时间:2023-01-02 09:40:43



由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循环工作流程**:

  1. 先由 l 得到一个t(iter(l))对象,
  2. 然后不停的调next,
  3. 直到最终捕获到一个StopIteration的异常,跳出整个for循环