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

更新于 2025/5/23