Mr.Li--python-迭代器和生成器

生成器:

一边循环一边运算的机制,称为生成器,generator

创建生成器方法1

把列表生成式的[]改成()

l=[x for x in range(10)]

print(l)

l=(x for x in range(10))

print(l)

next(l)

可以通过next()函数获得生成器的下一个值

生成器保存的是算法,每次调用 next(l) ,就计算出 l 的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出 StopIteration 的异常。一般用for遍历

创建生成器方法2:

def fib(times):

    n = 0

    a,b = 0,1

    while n

        yield b

        a,b = b,a+b

        n+=1

    return 'done'

 F = fib(5)

迭代器

迭代器是访问集合元素的一种方式,呆呆起是一个可以遍历的位置的对象,迭代对象从集合的第一个元素开始访问,知道所有的元素被访问结束,迭代器只能往前,不会后退

可以被next()函数调用并不断返回下一个值的对象称为迭代器:

�����܄�

可迭代对象

集合数据类型

generator

包括生成器和带yield的generator function

能直接用作于for循环的对象统称为可迭代对象.

判断是否可迭代用isinstance()判断

生成器不但可以被for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出Stoplteration异常

iter()函数

将可迭代对象转化为迭代器

总结

·凡是可作用于for循环的对象都是Iterable类型;

·凡是可作用于next()函数的对象都是Iterator类型

优点是节约内存

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容