生成器
生成器介绍
- 在Python中,一边循环一边计算的机制,称为生成器:generator
为什么要有生成器
- 列表所有数据都在内存中,如果有海量数据的话会非常消耗内存
- 而生成器在循环的过程中根据算法不断推算出后续的元素,这样就不用创建整个完整的列表,从而节省大量的空间。
创建生成器
- 示例代码
x = (x for x in range(3)) print(x) # generator object print(next(x)) print(next(x)) print(next(x)) print(next(x)) # 报错 StopIteration
生成器函数
- 在 Python 中,使用了
yield的函数被称为生成器(generator) - 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器
- 在调用生成器运行的过程中,每次遇到
yield时函数会暂停并保存当前所有的运行信息,返回yield的值, 并在下一次执行next()方法时从当前位置继续运行 - 以斐波那契数列函数作为例子
def fb(): print('start') a, b = 0, 1 for i in range(5): print('for-start') yield b print('continue') a, b = b, a + b print('func-end') x = fb() print(x) print(next(x)) print(next(x)) print(next(x)) print(next(x))
迭代器与生成器
- 生成器能做到迭代器能做的所有事
- 生成器自动创建了iter()和next()方法,显得简洁,高效。
最后,有喜欢博主写的内容的伙伴可以点赞收藏加关注哦!
2884

被折叠的 条评论
为什么被折叠?



