生成器(Generators)是 Python 中的一种特殊类型,允许你按需产生数据,而不是一次性将所有数据加载到内存中。这对于处理大量数据或需要高效内存使用的场景非常有用。
什么是生成器?
生成器是一种特殊的迭代器,它允许你一次只产生一个值,而不是一次性产生所有值。生成器的工作原理是通过 yield
语句来暂停函数的执行,并在每次迭代时恢复执行。
生成器函数
要创建一个生成器,你需要定义一个函数,并在函数中使用 yield
语句。以下是一个简单的生成器函数示例:
def generate_numbers(n):
for i in range(n):
yield i
# 使用生成器
for number in generate_numbers(5):
print(number)
生成器表达式
生成器表达式与列表推导式类似,但它们返回生成器对象而不是列表。以下是一个生成器表达式的示例:
numbers = (x * 2 for x in range(5))
for number in numbers:
print(number)
生成器的优势
- 节省内存:生成器不会一次性将所有数据加载到内存中,而是按需生成数据。
- 高效:生成器可以处理大量数据,而不会占用太多内存。
扩展阅读
想要了解更多关于 Python 生成器的知识,可以阅读我们的Python 生成器深入指南。
Python 生成器示例