美文网首页Python 成长笔记
Python拾珍:3. 生成器表达式

Python拾珍:3. 生成器表达式

作者: 赵者也 | 来源:发表于2018-02-27 13:55 被阅读5次

    生成器表达式(generator expression)和列表理解类似,但是它使用圆括号,而不是方括号:

    g = (x**2 for x in range(5))
    

    输出结果:

    输出结果

    结果是一个生成器对象,它知道如何遍历值的序列。但它又和列表理解不同,它不会一次把结果都计算出来,而是等待请求。内置函数 next 会从生成器中获取下一个值:

    应用内置函数 next 的输出结果

    当达到序列的结尾后,next 会抛出一个 StopInteration 异常。可以使用 for 循环来遍历所有值:

    使用 for 循环来遍历所有值

    一旦生成器遍历结束,再访问它就会抛出 StopException 异常:

    抛出 StopException 异常

    生成器表达式经常和 sum、max 和 min 之类的函数配合使用:

    配合使用输出

    本文参考自《像计算机科学家一样思考Python (第2版)

    相关文章

      网友评论

        本文标题:Python拾珍:3. 生成器表达式

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