python列表生成器与生成器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python列表生成器与生成器相关的知识,希望对你有一定的参考价值。

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

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

技术分享图片

列表生成器的应用

技术分享图片

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

技术分享图片

使用多层循环

技术分享图片



生成器

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

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

生成器书写

g=(x x ())
(g)

技术分享图片

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

技术分享图片


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

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

技术分享图片

上面的函数和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)

技术分享图片


以上是关于python列表生成器与生成器的主要内容,如果未能解决你的问题,请参考以下文章

python-迭代器与生成器1

python列表生成器与生成器

python列表生成式生成器,迭代器与二分法

python列表解析式与生成式表达式

python 生成器和迭代器

python之列表解析与生成器