王剑编程网

分享专业编程知识与实战技巧

【Python基础】生成器

生成器是一种特殊的函数,它可以在迭代过程中逐步产生值,而不是一次性返回所有结果。生成器使用关键字yield来返回值,每次调用yield时,函数会暂停并保存当前的状态,等待下一次迭代时继续执行。生成器可以节省内存空间,提高效率,也可以与其他迭代工具无缝配合。

要创建一个生成器,有两种方法:

  • 第一种方法是把一个列表生成式的[]改成(),就创建了一个生成器。例如:
g = (x * x for x in range(10)) # 创建一个生成器
for n in g: # 通过for循环迭代生成器
    print(n) # 输出0, 1, 4, 9, ..., 81
  • 第二种方法是在函数中使用yield语句来返回值。例如:
def fib(n): # 定义一个生成器函数
    a, b = 0, 1 # 初始化变量
    while a < n: # 循环条件
        yield a # 返回当前值
        a, b = b, a + b # 更新变量
for x in fib(100): # 通过for循环迭代生成器
    print(x) # 输出斐波那契数列

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言