Python 中的生成器与迭代器
Python 的迭代器和生成器都是可迭代的,但它们的实现和使用有所不同
迭代器
迭代器是可迭代对象,提供用于遍历项目序列的接口。它们有两个主要方法:
生成器
生成器是一种特殊类型的迭代器,它使用yield 关键字动态生成值。调用时,生成器函数返回一个可以迭代的生成器对象。
在内部,生成器存储一个挂起的执行状态,用于跟踪迭代中的当前位置。当迭代生成器时, __next__ 方法恢复挂起的函数并生成下一个值。然后再次暂停执行,直到下一次迭代。
用例
使用迭代器:
使用生成器:
示例
考虑以下为给定范围生成平方数的函数:
def squares(start, stop): for i in range(start, stop): yield i * i
该函数创建一个生成器,一次生成一个平方数。它比列表理解或自定义迭代器更有效,因为它避免创建所有平方值的中间列表。
以上是Python 中的迭代器与生成器:何时使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!