02迭代器和生成器

可迭代的对象(Iterable):可以作用域For循环

生成器(generator):本质是一个函数,定义了可以使用next(),函数输出值,调用生成器输出生成器对象,生成器一定是可以迭代的

eg:  g = (x * x for xi in range(10))  // g为一个生成器对象

        print(next(g))

迭代器(Iterator):是一种支持next()操作的对象,凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;

from collections.abc import Iterator

it = iter([1,2,3,4,5])# 循环:

while True:

try:

# 获得下一个值:

x = next(it)

except    StopIteration:

# 遇到StopIteration就退出循环

break

(3)区别:

①生成器是生成元素的,迭代器是访问集合元素的一中方式

②迭代输出生成器的内容

③迭代器是一种支持next()操作的对象

④迭代器(iterator):其中iterator对象表示的是一个数据流,可以把它看做一个有序序列,但我们不能提前知道序列的长度,只有通过next()函数实现需要计算的下一个数据。可以看做生成器的一个子集。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。