python列表生成器与生成器

发布时间:2019-09-10 09:13:37编辑:auto阅读(1531)

    列表生成器是python内置的非常简单却非常强大的。

    生成一个列表[1,2,3,4]可以用list(range(1,5))

    blob.png

    列表生成器的应用

    blob.png

    如果上面的公式加上判断,就可以筛选出想要的结果,比如仅需要偶数的平方

    blob.png

    使用多层循环

    blob.png



    生成器

    生成器与列表生成器的本质区别就是:一个已经生成数据了,使用时,如果数据过大,会产生内存溢出,而生成器是只有循环时,才会生成数据。

    生成器与列表生成器的区别在于一个是[],一个是()

    生成器书写

    g=(x x ())
    (g)

    blob.png

    打印generator的方法是next(g)和for循环

    blob.png


    使用函数的形式,打印斐波拉契数列

    (max):
        nab=n < max:
            (b)
            ab=ba+b
            n=n+fib()

    blob.png

    上面的函数和generator仅一步之遥,要把fib函数变成generator,只需要把print(b)改成yield 就可以

    (max):
        nab=n < max:
            b
            ab=ba+b
            n=n+fib()


    打印fib的生成器方法

    i fib():
        (i)

    如果使用for循环调用generator时,想拿到return返回值,需捕获stopIteration错误,返回值包含在stopIteration的value中:

    g=fib(6)

    (max):
        nab=n < max:
            b
            ab=ba+b
            n=n+g=fib()
    :
        :
            x=(g)
            (x)
        e:
            (e.value)

    blob.png


关键字