热线电话:13121318867

登录
2020-06-01 阅读量: 870
python迭代器和生成器有什么区别?

迭代器,对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,next()会抛出一个StopIteration异常,通知for语句循环结束。

生成器(Generator)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需要返回数据的时候使用yield语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)。

生成器是特殊的迭代器,用yield替代了__iter__和__next__方法。

13.7705
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子