python iter yield
时间: 2024-01-17 18:03:39 浏览: 69
在Python中,`iter`和`yield`是用于迭代的两个关键词。
`iter`函数返回一个可迭代对象,该对象可以在迭代过程中依次返回序列中的元素。你可以将一个可迭代对象作为参数传递给`iter`函数,或者使用迭代器协议实现自定义的可迭代对象。
例如,你可以使用`iter`函数将一个列表转换为迭代器:
```python
my_list = [1, 2, 3, 4, 5]
my_iter = iter(my_list)
# 使用 next 函数逐个获取元素
print(next(my_iter)) # 输出: 1
print(next(my_iter)) # 输出: 2
print(next(my_iter)) # 输出: 3
```
`yield`是一个关键字,用于定义生成器函数。生成器函数可以使用`yield`语句来生成值,并且可以在每次生成值后保留其状态。当生成器函数被调用时,它返回一个生成器对象,该对象可用于在迭代过程中生成值。
下面是一个使用`yield`定义的简单生成器函数的示例:
```python
def my_generator():
yield 1
yield 2
yield 3
# 调用生成器函数得到生成器对象
gen = my_generator()
# 使用 next 函数逐个获取生成器生成的值
print(next(gen)) # 输出: 1
print(next(gen)) # 输出: 2
print(next(gen)) # 输出: 3
```
`yield`关键字的特殊之处在于,它会将函数的状态保存下来,以便下次调用生成器时可以从上次停止的地方继续执行。这使得生成器函数非常适合处理大量数据或需要按需生成结果的情况。
阅读全文