大锤python日记(创建生成器的两种方式)

51 阅读1分钟

在 Python 中,生成器是一种特殊的函数,可以通过两种方式创建。

  1. 使用生成器函数:生成器函数是一个包含 yield 语句的 Python 函数。当生成器函数被调用时,它返回一个迭代器对象,该对象可以用于迭代函数中 yield 语句生成的值序列。每次从迭代器对象中获取新值时,都会重新启动生成器函数并继续执行,直到遇到下一个 yield 语句。这个过程会一直持续到函数执行完毕或者遇到了一个没有包含 yield 语句的 return 语句。

  2. 使用生成器表达式:生成器表达式是一种类似于列表推导和集合推导的表达式,可以用于快速创建一个生成器对象。与列表推导和集合推导不同的是,在生成器表达式中使用圆括号而不是方括号或花括号,并且不会在内存中创建对应的数据结构。相反,生成器表达式只会在需要使用值时逐个计算并生成值。

以下是使用生成器函数和生成器表达式的示例:

# 使用生成器函数
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