凡是可作用于for
循环的对象都是Iterable
类型;列表、集合、字典,元组、字符等,这些都是已列出了具体的元素。
凡是可作用于next()
函数的对象都是Iterator
类型,它们表示一个惰性计算的序列;只有在调用时才生成,只记住当前的位置,只有一个NEXT方法。
集合数据类型如list
、dict
、str
等是Iterable
但不是Iterator
,不过可以通过iter()
函数获得一个Iterator
对象。
Python的for
循环本质上就是通过不断调用next()
函数实现的。
通过迭代器函数可实现在单线程的情况下并发运算的效果。