python 生成器
时间: 2023-08-16 11:15:35 浏览: 109
python生成器和迭代器区别
Python生成器是一种特殊的函数,它使用yield语句来产生一个值序列而不是返回一个值。生成器可以按需生成值,逐个返回,而不会一次性生成所有的值。这在处理大量数据或无限序列时非常有用,因为它节省了内存和运算资源。
你可以使用关键字yield定义生成器函数。当调用生成器函数时,它会返回一个生成器对象,而不会立即执行函数体。只有在每次迭代时,函数体才会恢复执行,直到遇到yield语句,然后将yield后面的表达式作为迭代的下一个值返回。当再次迭代时,函数会从上次离开的地方继续执行。
以下是一个简单的示例,演示了如何使用生成器生成斐波那契数列:
```python
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
# 使用生成器生成斐波那契数列
fib = fibonacci()
for i in range(10):
print(next(fib))
```
这段代码定义了一个名为fibonacci的生成器函数,它使用while循环不断产生斐波那契数列的值。在每次迭代时,通过yield语句将当前值返回,并保存状态以便下次迭代继续执行。
希望这可以帮助你理解Python生成器的概念和用法!如果有任何其他问题,请随时提问。
阅读全文