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