美文网首页
浅析Python中的生成器

浅析Python中的生成器

作者: MontyOak | 来源:发表于2017-10-22 11:21 被阅读15次

之前简单说过Python中关于迭代器的概念,今天来简单说一下生成器。
所谓生成器,字面意思就是按照一定的算法生成一个序列。这么看来,迭代器和生成器的概念还有几分相似。其实,迭代器在某些场景下表现的像是生成器,但迭代器绝不是生成器,反倒是生成器实现了迭代器的协议。
生成器在Python中常常通过yield关键字来实现。如果一个方法使用了yield关键字,那么它就是一个生成器函数。当调用生成器函数的时候,会返回一个迭代器,这个迭代器是以生成器对象的形式出现的。yield返回的是生成器对象,当迭代访问的时候,代码才会执行,依次返回值,直到没有返回值为止。
生成器的使用场景是:

  1. 你不会两次使用所迭代的值
  2. 可以会有很多数据需要迭代访问,而生成器的惰性求值特性可以减小内存的压力
    生成器迭代过一次之后就无法再供迭代使用了,而迭代器这可以反复迭代调用。两者对于内存和计算力的消耗差距明显(在数据量比较大的时候尤其明显)。
a = [x for x in range(7)]  #一个迭代器
b = (x for x in range(7)) #一个生成器

相关文章

  • 浅析Python中的生成器

    之前简单说过Python中关于迭代器的概念,今天来简单说一下生成器。所谓生成器,字面意思就是按照一定的算法生成一个...

  • python输出杨辉三角

    知识点 1. python中的生成器 generator python生成器 2. python中-1索引表示容器...

  • python生成器

    什么是python生成器? 在python中,生成器是根据某种算法边循环边计算的一种机制。 生成器有什么特点? 1...

  • python笔记

    Python format格式化输出 浅谈 Python 的 with 语句 Python中迭代原理生成器和迭代原...

  • 14-核心编程2

    生成器 概念在Python中, 一边循环一边计算的机制, 称为生成器: generator 创建生成器: G = ...

  • 理解Python中的生成器及yield关键字

    参考资料: Python生成器 python生成器到底有什么优点?

  • 生成器 迭代器 装饰器

    生成器在Python中,这种一边循环一边计算的机制,称为生成器:generator。 创建生成器要创建一个生成器,...

  • 生成器

    生成器 在python中,使用了yield的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,...

  • Python 入门之 Python三大器 之 生成器

    Python 入门之 Python三大器 之 生成器 1、生成器 (1)什么是生成器? 核心:生成器的本质就是一个...

  • Python yield 的使用

    Python中,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 gene...

网友评论

      本文标题:浅析Python中的生成器

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