Python生成器
来源:互联网 发布:耳机调音软件 编辑:程序博客网 时间:2024/05/20 20:03
在Python中,一边循环一边计算的机制,称为生成器(Generator)。特殊场景下可以节约内存开支。
要创建一个generator
>>> g = (x * x for x in range(10))
>>> g
<generator object <genexpr> at 0x104feab40>第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。
>>> g.next()
0
一般情况下使用for循环,而不使用next去遍历。
>>> g = (x * x for x in range(10))
>>> for n in g:
... print n
斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:
1, 1, 2, 3, 5, 8, 13, 21, 34, ...
第二种方法:generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
要创建一个generator
>>> g = (x * x for x in range(10))
>>> g
<generator object <genexpr> at 0x104feab40>第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。
>>> g.next()
0
一般情况下使用for循环,而不使用next去遍历。
>>> g = (x * x for x in range(10))
>>> for n in g:
... print n
斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:
1, 1, 2, 3, 5, 8, 13, 21, 34, ...
第二种方法:generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
阅读全文
0 0
- Python 生成器
- Python生成器
- python生成器
- python 生成器
- python生成器
- python生成器
- python生成器
- python生成器
- python 生成器
- python生成器
- python 生成器
- python生成器
- python 生成器
- Python--生成器
- python 生成器
- Python 生成器
- python-生成器
- Python生成器
- Vuinerable 弹框警告问题解析
- vim 配置 clang-format
- Vuejs1.x
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- 按键消抖
- Python生成器
- U3d跨场景开发解决方案
- bootstrap手机界面自适应
- es6中箭头函数学习的一个记录
- 常见的http请求错误代码原因及解决方法
- - Request processing failed; nested exception isorg.mybatis.spring.MyBatisSystemException
- 会计零基础该看什么书?
- 楼盘介绍
- React Native布局常识与技巧 一