前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python列表生成器与生成器

python列表生成器与生成器

作者头像
py3study
发布2020-01-07 14:56:07
1.2K0
发布2020-01-07 14:56:07
举报
文章被收录于专栏:python3python3

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

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

blob.png
blob.png

列表生成器的应用

blob.png
blob.png

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

blob.png
blob.png

使用多层循环

blob.png
blob.png

生成器

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

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

生成器书写

代码语言:javascript
复制
g=(x x ())
(g)
blob.png
blob.png

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

blob.png
blob.png

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

代码语言:javascript
复制
(max):
    nab=n < max:
        (b)
        ab=ba+b
        n=n+fib()
blob.png
blob.png

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

代码语言:javascript
复制
(max):
    nab=n < max:
        b
        ab=ba+b
        n=n+fib()

打印fib的生成器方法

代码语言:javascript
复制
i fib():
    (i)

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

g=fib(6)

代码语言:javascript
复制
(max):
    nab=n < max:
        b
        ab=ba+b
        n=n+g=fib()
:
    :
        x=(g)
        (x)
    e:
        (e.value)
blob.png
blob.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档