python 生成器表达式
时间: 2023-08-30 13:10:58 浏览: 95
python 生成列表 示例(range、生成表达式、生成器)
Python 生成器表达式是一种生成器语法,可以用于生成一个迭代器。与列表推导式类似,生成器表达式也可以通过一个可迭代对象来生成一个新的可迭代对象。但是,生成器表达式是一个惰性求值的生成器,只有在需要时才会生成下一个元素,这样可以节省内存空间。
生成器表达式的语法格式为:`(expression for item in iterable)`
其中,expression 是要生成的元素表达式,item 是可迭代对象中的每个元素,iterable 是可迭代对象。
举个例子,我们可以使用生成器表达式生成一个包含前 10 个偶数的迭代器:
```python
even_numbers = (num for num in range(20) if num % 2 == 0)
```
在这个例子中,`range(20)` 返回一个可迭代对象,生成器表达式 `(num for num in range(20) if num % 2 == 0)` 对这个可迭代对象进行过滤,只保留偶数,最终生成一个包含前 10 个偶数的迭代器。我们可以通过调用 `next()` 函数来逐个获取这些偶数:
```python
print(next(even_numbers)) # 输出 0
print(next(even_numbers)) # 输出 2
print(next(even_numbers)) # 输出 4
# ...
```
当迭代器中的元素全部被访问完毕后,再次调用 `next()` 函数会触发 `StopIteration` 异常。
阅读全文