在 Python 中,生成器是一种特殊的函数,可以通过两种方式创建。
-
使用生成器函数:生成器函数是一个包含
yield
语句的 Python 函数。当生成器函数被调用时,它返回一个迭代器对象,该对象可以用于迭代函数中yield
语句生成的值序列。每次从迭代器对象中获取新值时,都会重新启动生成器函数并继续执行,直到遇到下一个yield
语句。这个过程会一直持续到函数执行完毕或者遇到了一个没有包含yield
语句的return
语句。 -
使用生成器表达式:生成器表达式是一种类似于列表推导和集合推导的表达式,可以用于快速创建一个生成器对象。与列表推导和集合推导不同的是,在生成器表达式中使用圆括号而不是方括号或花括号,并且不会在内存中创建对应的数据结构。相反,生成器表达式只会在需要使用值时逐个计算并生成值。
以下是使用生成器函数和生成器表达式的示例:
# 使用生成器函数
def my_generator():
yield 1
yield 2
yield 3
# 使用生成器表达式
my_generator = (x for x in range(1, 4))
# 迭代生成器对象并打印值
for value in my_generator:
print(value)
这个例子会输出以下结果:
1
2
3