美文网首页
Mr.Li--python-迭代器和生成器

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

作者: 界面大叔 | 来源:发表于2017-06-06 19:52 被阅读0次

    生成器:

    一边循环一边运算的机制,称为生成器,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类型

    优点是节约内存

    相关文章

      网友评论

          本文标题:Mr.Li--python-迭代器和生成器

          本文链接:https://www.haomeiwen.com/subject/dwrwfxtx.html