【Python】说一下生成器generator和迭代器iterator?(约238字)

生成器

生成器是一种特殊迭代器。生成一系列的值用于迭代,在for循环的过程中不断计算出下一个元素并在恰当的条件结束循环

使用了yield的函数,返回迭代器

迭代器

迭代器是访问集合元素的一种方式,他的对象从集合的第一个元素开始访问,直到所有元素被访问完结束,用iter()创建迭代器,调用next()函数获取对象(迭代只能往前不能后退)。

两者区别

  • 创建/生成,生成器创建一个函数,用关键字yield生成/返回对象;迭代器用内置函数iter()和next()
  • 生成器中yield语句的数目可以自己在使用时定义,迭代器不能超过对象数目

  • 生成器yield暂停循环时,生成器会保存本地变量的状态;迭代器不会使用局部变量,更节省内存

THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容