当前位置: 首页 > 网络知识

Python基础入门学习笔记 049 乱入:生成器

时间:2026-01-29 09:25:53

所谓协同程序,就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。

生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。

一个函数中如果有yield语句,则被定义为生成器。

实例1:

1 >>> def myGen(): 2 print("生成器被执行了!") 3 yield 1 #暂停一次,相当于return,返回1 4 yield 2 #暂停一次,相当于return,返回2 5 6 7 >>> myG = myGen() 8 >>> next(myG) 9 生成器被执行了! 10 1 11 >>> next(myG) 12 2

像前面介绍的斐波那契的例子,也可以用生成器来实现:

1 >>> def fibs(): 2 a = 0 3 b = 1 4 while True: 5 a,b = b,a + b 6 yield a 7 8 9 >>> for each in fibs(): 10 if each > 100: 11 break 12 print(each)

1
1
2
3
5
8
13
21
34
55
89

列表推导式表达:

100以内,能被2整除,但不能被3整除的所有整数

1 >>> a = [i for i in range(100) if not (i % 2) and (i % 3 )] 2 >>> a 3 [2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98]

字典推导式:

10以内是否为偶数

1 >>> a = 2 >>> a 3

集合推导式:

1 >>> a = 2 >>> a 3

元组生成器推导式:

1 >>> e = (i for i in range(5)) 2 >>> next(e) 3 0 4 >>> next(e) 5 1 6 >>> next(e) 7 2



上一篇:Python基础入门学习笔记 065 GUI的终极选择:Tkinter2
下一篇:Python基础入门学习笔记 041 魔法方法:构造和析构
python
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素