Python面试:迭代器和生成器

讲讲python的迭代器和生成器

参考:菜鸟教程
如何更好地理解Python迭代器和生成器?

区别:生成器是一种特殊的迭代器,只能迭代一次

迭代器

迭代器是python中的一个强大功能,用于访问集合元素。是一个能记住遍历位置的对象,遍历时只能往前,不能后退。迭代器常用方法有 iter()next(). 把一个类作为迭代器使用需要在类中实现两个函数:__iter__()__next__().

生成器

Python 中使用了 yield 的函数称为生成器,生成器函数返回一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。生成器函数自动实现了迭代器协议,能更方便地实现。
除了生成器函数可以提供生成器以外,生成器表达式也可以提供,只需要简单地将列表推导的中括号替换成圆括号即可。

你可能感兴趣的:(Python,python,生成器)