python迭代器和生成器的区别

 我来答
百度网友690070a
2021-08-21 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:8.3万
展开全部
迭代器与生成器的区别:
(1)生成器:
生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。
对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。
而且记录了程序执行的上下文。
生成器不仅“记住”了它的数据状态,生成器还记住了程序执行的位置。
(2)迭代器
迭代器是一种支持next()操作的对象。它包含了一组元素,当执行next()操作时,返回其中一个元素。
当所有元素都被返回后,再执行next()报异常—StopIteration
生成器一定是可迭代的,也一定是迭代器对象
(3)区别:
①生成器是生成元素的,迭代器是访问集合元素的一中方式
②迭代输出生成器的内容
③迭代器是一种支持next()操作的对象
④迭代器(iterator):其中iterator对象表示的是一个数据流,可以把它看做一个有序序列,但我们不能提前知道序列的长度,只有通过nex()函数实现需要计算的下一个数据。可以看做生成器的一个子集。
帐号已注销

2020-12-01 · TA获得超过8231个赞
知道大有可为答主
回答量:6.5万
采纳率:23%
帮助的人:2031万
展开全部
这个的区别就是在使用的过程当中啊,它生成的旗舰是不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老男孩教育
2021-06-02 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部
迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己的本身,对于string、list、dict、tuple等这类容器对象,使用for循环会更加方便。在后台for语句对容器对象调用iter()函数,iter()是Python内置函数。
iter()会返回一个定义了next()方法的迭代器对象,在容器中逐个访问容器内元素,next()也是Python的内置函数,无后续元素时,next()会抛出一个StopIteration异常
生成器是创建迭代器简单而强大的工具,像正规函数,在需要返回数据的时候使用yield语句,每次next()被调用时,生成器会返回它脱离的位置。
迭代器和生成器区别主要在于生成器可以做迭代器的事情,生成器是一种特殊的迭代器。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魔断灯4
2020-12-01 · 超过1080用户采纳过TA的回答
知道小有建树答主
回答量:2773
采纳率:99%
帮助的人:138万
展开全部
迭代器和生成器的区别就是对于机器的识别方面的功能的区别,我是这么理解的,任何产品都有机器识别功能,区别吸气识别功能是这方面产品的代名词
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式