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()函数实现需要计算的下一个数据。可以看做生成器的一个子集。

你可能感兴趣的:(02迭代器和生成器)