美文网首页
Python-什么是生成器和迭代器?它们之间有什么区别?

Python-什么是生成器和迭代器?它们之间有什么区别?

作者: 阳光小镇少爷 | 来源:发表于2023-04-16 15:58 被阅读0次

迭代器
作用:简化循环的代码并可以节约内存
是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退
迭代器有两个基本的方法:iter() 和 next()。

生成器
作用:节约大量内存
使用了 yield 的函数被称为生成器、生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器
原理:在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行

区别
生成器是迭代器的一种实现,所有生成器都是迭代器,因为生成器完全实现了迭代器接口,迭代器用于从集合中取出元素,而生成器用于“凭空”生成元素,生成器相较于迭代器更为简洁,它能极大程度的简化代码,使得执行流程更为清晰。

    迭代器需要我们定义一个类来实现相关的方法才能构造一个灵活的迭代器,而生成器则只需要在普通的函数中加入一个yield关键字,yield 语句的作用就是把一个函数变成一个生成器(generator),生成器的出现使得python能类似于协同程序(协同程序的概念一开始有介绍)工作。

相关文章

  • 14. Python之迭代器(iterator)和生成器(gen

    1 什么是迭代器 2 为何要有迭代器 3 如何用迭代器 4 生成器 生成器应用案例

  • 2019-03-20

    1 迭代器和生成器 迭代器 获取数据:next (迭代器)、for 循环遍历 ,数据来源:转换、生成器 生成器:...

  • 教你理解掌握Python迭代器与生成器

    学习python的过程中,迭代器与生成器是绕不开的话题, 什么是迭代器和生成器呢? 1、迭代和它的小伙伴们。 迭代...

  • Python语言基础之——迭代器生成器和模块

    1.迭代器 1.什么是迭代器(iter) 迭代器是容器型数据类型,只能通过类型转换和生成器来获得迭代器对象迭代器存...

  • 第014篇:三大神器之生成器

    Python的三大神器:装饰器、迭代器、生成器 1、生成器 1.1、什么是生成器 生成器就是迭代器的一种;生成器作...

  • yield and Iterator

    Generator(生成器) 生成器是特殊的迭代器,迭代器不一定是生成器。 生成器与迭代器均是可迭代对象。 目前学...

  • 什么是生成器?

    迭代器 什么是生成器了?生成器就是懒人版迭代器。那迭代器又是什么了?我们会经常写for循环,类似这样的。 这个列表...

  • python生成器和迭代器

    文章来源:python 生成器和迭代器有这篇就够了 什么是迭代器? 迭代器是访问集合元素的一种方式。迭代器对象从集...

  • Python基础-16生成器-迭代器

    16.生成器-迭代器     可循环迭代的对象称为可迭代对象,迭代器和生成器函数是可迭代对象,在Python中提供...

  • python の 可迭代、迭代器 、生成器

    生成器: 生成器是一种特殊的迭代器,生成器自动实现了“迭代器协议”(即__ iter__和__ next __方法...

网友评论

      本文标题:Python-什么是生成器和迭代器?它们之间有什么区别?

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