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)
时,生成器会从上次暂停的地方继续执行,并返回下一个值。
点我分享笔记