python生成器讲解
时间: 2023-06-22 19:47:29 浏览: 90
Python生成器是一种特殊类型的函数,它可以用于迭代,即在代码执行期间,生成器可以逐个返回值。相比于一次性返回所有值的列表,生成器可以节省大量内存空间,尤其是在需要迭代大量元素时。
生成器的定义方式和普通函数类似,但是在函数体内使用yield语句进行数值的返回,而不是return语句。每次调用生成器时,程序会从上次yield语句的位置开始执行,直到遇到下一个yield语句或函数结束。这样,生成器可以在每次迭代时返回一个值,而不必一次性返回所有值。
下面是一个简单的生成器示例,用于生成斐波那契数列:
```python
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
```
调用该函数时,可以使用for循环进行迭代:
```python
for i in fibonacci():
if i > 100:
break
print(i)
```
该程序将输出斐波那契数列中小于100的所有数。
需要注意的是,生成器在每次迭代时返回的是一个对象,而不是数值本身。因此,在需要使用数值时,需要使用next()函数或for循环来获取每个数值。此外,生成器在使用完毕后,必须使用close()函数来关闭,以释放资源。
总之,生成器是一种非常有用的工具,可以在需要迭代大量元素时,有效地节省内存空间,提高程序的运行效率。
阅读全文