Python列表推导式与生成器

作者: olaH | 来源:发表于2018-08-08 22:04 被阅读2次

愿你一直充满无限的潜力


列表推导式

>>> [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)

相关文章

  • python 基础 05 生成器,列表推导式,次要的内置函数

    python 基础 05 1.生成器 2.列表推导式 3.生成器表达式 4.字典推导式与集合推导式 5.次要的内置函数

  • Python 入门之推导式

    Python 入门之 推导式 推导式就是构建比较有规律的列表,生成器,字典等一种简便的方式 1、推导式 (1)列表...

  • Python中的推导式

    列表推导式 字典推导式 集合推导式 生成器推导式

  • 016 Python语法之推导式

    推导式 特性 好好应用推导式后面的条件判断 列表推导式 字典推导式 集合推导式 生成器推导式

  • python高级用法

    本文主要介绍三种python的高级用法:列表推导式、迭代器和生成器、装饰器 一、列表推导(list compre...

  • 推导式 生成器 迭代器

    推导式 生成器 迭代器 1.推导式 推导式:列表推导式、字典推导式、集合推导式语法 [变量 for 变量 in 旧...

  • Python中各种推导式

    Python的各种推导式(列表推导式,字典推导式,集合推导式) 列表(list)推导式 字典(dict)推导式 集...

  • 列表推导式和生成器的优缺点

    python3 中列表推导式和生成器的优缺点 列表推导式将所有结果一次性加载到内存生成器不会将所有的值一次性加载到...

  • Python 各种推导式

    python 列表推导式 执行结果 生成器表达式 1 把列表解析的[]换成()得到的就是生成器表达式 2 列表解析...

  • Python 生成器和迭代器

    生成器和迭代器 生成器 Python 列表推导和生成器表达式 在上文中简单介绍了生成器的作用。在列表推导创建列表时...

网友评论

    本文标题:Python列表推导式与生成器

    本文链接:https://www.haomeiwen.com/subject/uwqfpftx.html