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条评论来说两句吧...