具体介绍一下生成器的用法,举例子
时间: 2024-03-06 09:51:15 浏览: 47
生成器的用法可以分为两种:通过函数创建生成器和通过生成器表达式创建生成器。
1. 通过函数创建生成器
通过函数创建生成器需要使用到关键字 `yield`,使用 `yield` 可以将函数变成生成器,函数执行到 `yield` 语句时,会暂停执行并返回一个值,下次调用时会从上次暂停的地方继续执行,直到函数执行完毕或者遇到 `return` 语句。
下面是一个简单的例子,展示了如何使用函数创建生成器:
```python
def countdown(n):
while n > 0:
yield n
n -= 1
for i in countdown(5):
print(i)
```
输出结果为:
```
5
4
3
2
1
```
在这个例子中,`countdown` 函数使用了 `yield` 语句来返回一个值,并且在下一次调用时从上次的位置继续执行,直到 `n` 的值为 0。
2. 通过生成器表达式创建生成器
生成器表达式是一种简单的语法,它可以在一行代码中创建一个生成器。使用生成器表达式的语法类似于列表推导式,但是使用的是圆括号而不是方括号。
下面是一个简单的例子,展示了如何使用生成器表达式创建生成器:
```python
gen = (x * x for x in range(10))
for i in gen:
print(i)
```
输出结果为:
```
0
1
4
9
16
25
36
49
64
81
```
在这个例子中,`gen` 是一个生成器,它使用生成器表达式来创建。生成器表达式 `(x * x for x in range(10))` 会产生一个序列,其中包含了 0 到 9 的平方值。使用 `for` 循环遍历这个生成器,就可以依次输出序列中的每一个值了。