pyhotn3入门基础-11 生成器
来源:互联网 发布:青果教育网络管理系统 编辑:程序博客网 时间:2024/06/05 03:25
创建生成器
创建L
和g
的区别仅在于最外层的[]
和()
,L
是一个list,而g
是一个generator。
>>> L = [x * x for x in range(10)]>>> L[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]>>> g = (x * x for x in range(10))>>> g<generator object <genexpr> at 0x000000000315B200>
通过next()
函数获得generator的下一个返回值
>>> next(g)0>>> next(g)1
调用next到没有元素的时候,会有StopIteration的错误
循环打印
>>> g = (x * x for x in range(10))>>> for n in g:... print(n)... 0149162536496481
def fib(max): n, a, b = 0, 0, 1 while n < max: print(b) a, b = b, a + b n = n + 1 return 'done'
a, b = b, a + b
相当于:t = (b, a + b) # t是一个tuple 元组a = t[0]b = t[1]
如果一个函数定义中包含yield
关键字,那么这个函数就不再是一个普通函数,而是一个generator
def fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 return 'done'
>>> f = fib(6)>>> f<generator object fib at 0x104feaaa0>
generator的函数,每次调用
next()
的时候执行,遇到yield
语句返回,再次执行时从上次返回的yield
语句处继续执行阅读全文
0 0
- pyhotn3入门基础-11 生成器
- pyhotn3入门基础-1
- pyhotn3入门基础-3 字符串
- pyhotn3入门基础-7函数
- pyhotn3入门基础-8切片
- pyhotn3入门基础-12 迭代器
- pyhotn3入门基础-2数据类型和变量
- pyhotn3入门基础-9迭代
- pyhotn3入门基础-10 列表生成式
- pyhotn3入门基础-13 高阶函数
- pyhotn3入门基础-4 使用list和tuple
- pyhotn3入门基础-5条件判断与循环
- pyhotn3入门基础-6使用dict和set
- pyhotn3入门基础-14 返回函数和匿名函数
- pyhotn3入门基础-15 装饰器与偏函数
- Python入门——列表生成器基础
- 零基础入门学习Python(26):生成器
- php 生成器 入门理解
- 数据库2008死锁解锁脚本
- ATSH204A睡眠后唤醒
- BindIoCompletionCallback多线程下效率不如单线程高.
- AttributeError: 'module' object has no attribute 'detect'
- c#对接阿里云视频转码服务之删除
- pyhotn3入门基础-11 生成器
- 第四十篇:GCD 多线程
- APK包的安装,卸载和优化
- Java中连续继承中的多态问题
- X-frame-options头为设置
- java urldecode笔记
- C#——面向对象——静态成员和静态类——静态成员
- 程序员:如何写出杀手级简历
- Android数据库sqlite基本使用增、删、改、查