Python学习笔记-生成器
来源:互联网 发布:软件人才缺口多少 编辑:程序博客网 时间:2024/05/23 19:23
有时候一个列表里的元素过多,多到计算机内存存不下来,我们就需要想一个办法解决这个问题,如果能在需要的时候生成新元素就好了,可以用生成器。生成器–一种边循环边根据某种算法计算生成元素的机制
如何创建一个生成器呢,最简单的方法通过修改一下列表生成器创建。
n = (n for n in range(10))
没错就是把列表生成器的 [] 换成了 () n就是一个生成器。
如果逻辑变得复杂该怎么办呢,那就使用下一个办法:改造一个函数使其成为一个生成器。
def fib(max): n,a,b = 0,0,1 while n < max: yield b a,b = b,a+b n = n+1
这就生成了一个能生成斐波那契数的生成器,他的原理是遇到yield就中断直到下一次调用再继续执行。yield的作用类似return如上面的例子就是返回b的值。
要让生成器生成元素需要先创建生成器对象b,再使用next(b)
生成器是可以迭代的所以能使用如下代码生成
b = fib(max)for n in b: ...
0 0
- Python学习笔记-生成器
- Python学习笔记--生成器
- python学习笔记 生成器
- Python生成器学习笔记
- python学习笔记--生成器
- Python学习笔记 - 生成器generator
- python学习笔记--理解生成器
- python 学习笔记6 生成器
- 【Python 学习笔记】各种生成器
- python学习笔记--generator生成器
- python学习笔记-生成器并行
- python学习笔记之生成器
- 【Python学习笔记】python高级特性:生成器
- 【python学习笔记】Python生成器yield
- Python学习笔记之函数生成器
- Python 学习笔记 迭代器和生成器
- python学习笔记,列表生成式,生成器
- 【Python】学习笔记——-4.4、生成器
- 改变Activity在当前任务堆栈中的顺序
- GRE写作必备句型
- HDU 2578 Dating with girls(1)
- IOS - 登录界面
- UVALive 6510 Stickers
- Python学习笔记-生成器
- JavaScript/jQuery WebIM 及时聊天通信工具 本地客户端
- PendingIntent
- 2012年5月SAT香港真题解析
- UINavigationController与UITabbarController的样式
- Struts2的ValueStack及EL表达式中取ValueStack的内幕
- Android 代码混淆
- 优化之误!
- 联合(union)用法