python学习19--生成器
2017-01-24 17:50
204 查看
1.生成器作用
函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。
2.标志:
在函数中定义有yield语句。需要注意的是:每一个生成器函数又相当于一个迭代器。
每一个yield相当于return,迭代返回。可以使用next()函数进行依次访问每一个yield语句。
3.列表推导式:
a=[i for i in range(100) if not(i%2) and i&3]
则:a=[2,4,8....]
字典(大括号加冒号标志,没有冒号是一个集合)推导式:
b={i:i%2 for i in range(10)}
b=[0:true,1:false...]
集合推导式:
c={i for i in [1,1,2,3,4,5,6,1,2,3]}
字符串迭代器:
没有。因为在双引号内就是一个字符串,不存在逻辑关系
元祖生成器:
e=(i for i in range(10))
则:e不打印数据。此时e为一个生成器,即此该公式为生成器推导式。
注意:如果将生成器推导式作为函数的参数,不需要加括号(也可加)即可,即:sum(i for i in range(10))
函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。
2.标志:
在函数中定义有yield语句。需要注意的是:每一个生成器函数又相当于一个迭代器。
每一个yield相当于return,迭代返回。可以使用next()函数进行依次访问每一个yield语句。
3.列表推导式:
a=[i for i in range(100) if not(i%2) and i&3]
则:a=[2,4,8....]
字典(大括号加冒号标志,没有冒号是一个集合)推导式:
b={i:i%2 for i in range(10)}
b=[0:true,1:false...]
集合推导式:
c={i for i in [1,1,2,3,4,5,6,1,2,3]}
字符串迭代器:
没有。因为在双引号内就是一个字符串,不存在逻辑关系
元祖生成器:
e=(i for i in range(10))
则:e不打印数据。此时e为一个生成器,即此该公式为生成器推导式。
注意:如果将生成器推导式作为函数的参数,不需要加括号(也可加)即可,即:sum(i for i in range(10))
相关文章推荐
- python学习笔记9-迭代器和生成器整理
- python 学习笔记(6)闭合与生成器
- python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
- Python学习-39.Python中的生成器
- Python学习-19.Python的Http模块
- Python学习 随机数据生成器
- python学习笔记19(序列的方法)
- Python 学习入门(19)—— 异常
- 静态方法 分类: python基础学习 2014-04-05 19:34 228人阅读 评论(0) 收藏
- Python学习笔记——生成器,yeild语句
- python yield生成器 分类: python基础学习 2013-08-04 15:40 324人阅读 评论(0) 收藏
- Python 学习入门(19)—— 异常
- python学习笔记之八:迭代器和生成器
- Python 生成器学习
- yield生成器对象返回Fiabs元素 分类: python 小练习 python基础学习 2014-01-13 10:28 193人阅读 评论(0) 收藏
- python 从yield 学习迭代器和生成器
- 使用生成器返回fibs列表 分类: python Module python基础学习 2013-10-28 18:19 283人阅读 评论(0) 收藏
- 生成器的应用例子 分类: python 小练习 divide into python python基础学习 2013-12-31 21:32 236人阅读 评论(0) 收藏
- Python学习25:生成器使用(yield “type = gennerator”)
- Python学习笔记19:服务器基础