Python生成器是一种特殊的函数,允许你一次生成一个值,而不是一次性生成整个序列。这使得生成器在处理大量数据时非常高效。
基本概念
生成器函数通过使用yield
语句来返回值,而不是使用return
。每次调用生成器函数时,它会从上次暂停的地方继续执行,直到下一个yield
语句。
语法
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
# 逐个获取值
for value in gen:
print(value)
优势
- 节省内存:生成器不会像列表那样一次性将所有值加载到内存中。
- 按需生成:你可以控制生成器的执行流程,按需生成值。
示例
假设我们要生成一个斐波那契数列:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 创建生成器对象
fib = fibonacci()
# 获取前10个斐波那契数
for _ in range(10):
print(next(fib))
扩展阅读
更多关于Python生成器的信息,请访问Python生成器教程。