Python 使用生成器实现一个无限序列

Document 对象参考手册 Python3 实例

在 Python 中,生成器是一种特殊的迭代器,它允许你按需生成值,而不是一次性生成所有值。生成器非常适合用于处理无限序列,因为它们只在需要时生成值,从而节省内存。

下面是一个使用生成器实现无限序列的示例,该序列从 0 开始,每次递增 1。

实例

def infinite_sequence():
    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) 时,生成器会从上次暂停的地方继续执行,并返回下一个值。

Document 对象参考手册 Python3 实例