{site_name}

{site_name}

🌜 搜索

Python生成器是一种特殊的函数,它返回一个可迭代对象,每次产生一个值而不是一次性返回所有值

Python 𝄐 0
Python 生成器和迭代器,python生成器yield原理,Python 生成器为什么比for慢,Python 生成器对象,Python 生成器 停止,python 生成器 迭代器 区别
Python生成器是一种特殊的函数,它返回一个可迭代对象,每次产生一个值而不是一次性返回所有值。这样可以节省内存并提高程序效率,尤其是当需要处理大量数据时。

生成器的工作原理是通过yield关键字来实现暂停和恢复执行。当调用生成器函数时,它会返回一个生成器对象,该对象可以像迭代器一样使用。每次调用生成器对象的__next__()方法或使用for循环迭代时,生成器会从上次离开的地方继续执行代码,直到遇到yield语句,然后将yield语句右侧的值返回给调用者,并暂停执行,等待下一次调用。

下面是一个简单的生成器函数示例,它生成斐波那契数列的前n项:

python
def fibonacci(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b

# 使用生成器函数生成斐波那契数列的前10项
fib = fibonacci(10)
for num in fib:
print(num)


输出结果为:


0
1
1
2
3
5
8
13
21
34


在每次调用fibonacci()函数时,它都会返回一个生成器对象,然后我们可以使用for循环来迭代这个对象,每次迭代都会生成下一个斐波那契数列的值。由于生成器每次只会生成一个值,所以它可以处理大量数据而不会占用太多内存。