约 855 字
约 4 分钟
生成器(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/5/23
更新于 2025/5/23