Python列表推导式与生成器
愿你一直充满无限的潜力
列表推导式
>>> [x+1 for x in range(10) ] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
从上面的代码可以看出,列表推导式是生成一个列表。
生成器
>>> g=(x+1 for x in range(10)) >>> g <generator object <genexpr> at 0x7f3af91b7570> >>> next(g) 1 >>> next(g) 2 >>> next(g) 3 >>> next(g) 4 >>> next(g) 5 >>> next(g) 6 >>> next(g) 7 >>> next(g) 8 >>> next(g) 9 >>> next(g) 10 >>> next(g) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>>
从上面的代码可以看出,生成器的形式和列表推导式差不多,只是括号的不同。
本质区别是列表推导式是一次性生成,而生成器是通过相应的算法推导出来的值,在数据量较大的时候,你不可能一次性生成那么大的列表,生成器是最好的选择。
例如:用生成器产生斐波拉契数列
def fibs(max): n,a,b=0,0,1 while n < max: yield b a,b = b,a+b n+=1 for n in fibs(6): print(n)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Django实战(一)之简单Demo
菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Linux安装Python2.7和Django可以参考: 参考链接:https://www.cnblogs.com/Python666/p/8118479.html 另外说明关于pip版本导致安装Django失败问题,可参考链接为:https://blog.csdn.net/elare/article/details/52658809 Hello World是任何开发者再学习一门新的技术时,通常第一接触的。 简单的例子,有助于增加学习者的信心。 (1)Django创建第一个项目 django-admin startproject HelloWorld目录结构为: 目录说明: HelloWorld:项目的容器。 manage.py:一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。 HelloWorld/__init__.py:一个空文件,告诉 Python 该...
- 下一篇
Python小技巧
One For All!!! 导包 取别名 from math as foobar from module1 import open as open1 from module2 import open as open2 查找Python的模块位置 >>> import sys,pprint >>> pprint.pprint(sys.path) 导入自定义的模块 import sys sys.path.append('模块绝对路径') 赋值魔法(序列解包) >>> x,y,z = 1,2,3 >>> print x,y,z 1 2 3 >>> x,y = y,x >>> print x,y,z 2 1 3 >>> values = 1,2,3 >>> values (1, 2, 3) >>> x,y,z = values >>> x 1 >>> y 2 >>> z 3 &g...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7设置SWAP分区,小内存服务器的救世主