Python 迭代器
1、可迭代对象
可以直接作用于for循环的对象统称为可迭代对象:Iterable
可迭代对象包括:
(1)列表、元组、字典、集合、字符串
(2)生成器和带yield的generator function
2、迭代器
定义:可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
特点:迭代器只能往前,不能后退。
generator都是迭代器
列表、字典、字符串为什么不是Iterator?
因为Python的Iterator对象表示的是一个数据流,可以被next()调用并不断返回下一个数据,直到抛出StopIteration。我们不能提前知道序列长度,所以Iterator的计算是惰性的。
3、生成器与迭代器的关系
生成器是迭代器的一个子集