Python 使用生成器实现一个无限序列
在 Python 中,生成器是一种特殊的迭代器,它允许你按需生成值,而不是一次性生成所有值。生成器非常适合用于处理无限序列,因为它们只在需要时生成值,从而节省内存。
下面是一个使用生成器实现无限序列的示例,该序列从 0 开始,每次递增 1。
实例
def infinite_sequence():
num = 0
while True:
yield num
num += 1
num = 0
while True:
yield num
num += 1
代码解析:
def infinite_sequence():定义了一个名为infinite_sequence的生成器函数。num = 0初始化一个变量num,用于存储当前序列的值。while True:创建一个无限循环,确保生成器可以一直生成值。yield num使用yield关键字返回当前的num值,并暂停函数的执行,直到下一次调用next()。num += 1每次生成值后,num递增 1,以便下一次生成下一个值。
输出结果:
由于这是一个无限序列,生成器会一直生成值。你可以通过 next() 函数来获取序列中的下一个值。
gen = infinite_sequence() print(next(gen)) # 输出: 0 print(next(gen)) # 输出: 1 print(next(gen)) # 输出: 2 # 以此类推...
每次调用 next(gen) 时,生成器会从上次暂停的地方继续执行,并返回下一个值。

Python3 实例