国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > 生成器 以获得更好的体验。

# 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)      # 输出剩余的值

# 生成器推导式

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

运行示例

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

print(numbers)

for value in numbers:
    print(value)
本文 更新于: 2025-06-19 01:15:31 创建于: 2025-06-19 01:15:31