chevron_left

Python 语言基础面试复习

免费
第 3.6 回

教程文档

Python 语言基础面试复习 - 生成器

2023年11月17日
Python 语言基础面试复习

生成器

生成器、迭代器的区别?

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

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

区别:生成器能做到迭代器能做的所有事,而且因为自动创建了 iter() 和 next() 方法,生成器显得特别简洁,而且 生成器也是高效的,使用生成器表达式取代列表解析可...

课程介绍

Python 工作面试必备复习知识