约 855 字

约 4 分钟

#Python 的生成器

生成器(Generator) 是 Python 中一种特殊的迭代器,它按照某种公式逐次生成值,而不像列表那样保存有多个值,因此可以节约内存。

#生成器函数

生成器函数使用 yield 语句而不是 return 来返回值,调用时并不执行函数,而是返回一个生成器。

该生成器每次迭代时,执行函数到 yield 并返回一项数据,下次迭代时从 yield 之后继续执行,而非从函数开头执行。

例如:

# 生成器函数
def count_up_to(max):
    count = 1           # 初始化,从 1 开始
    while count <= max:
        yield count     # 每次调用next()时执行到这里并返回count的值
        count += 1

# 创建生成器对象
counter = count_up_to(10)

# 使用生成器
print(next(counter))  # 输出: 1
print(next(counter))  # 输出: 2
print(next(counter))  # 输出: 3

for value in counter:
    print(value)      # 输出剩余的值

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#生成器推导式

类似容器的 推导式,生成器也能通过推导式创建,生成器的推导式为圆括号(())包裹的 值的循环表达式。

# 生成器推导式
numbers:tuple[int] = (x**2 for x in range(10))

print(numbers)

for value in numbers:
    print(value)

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

更新: 2025/5/23

作者: PlanC

创建: 2025/5/23