浅谈python迭代器


Posted in Python onNovember 08, 2017

1、yield,将函数变为 generator (生成器)

例如:斐波那契数列

def fib(num):
  a, b, c = 1, 0, 1

  while a <= num:
    yield c
    b, c = c, b + c
    a += 1
for n in fib(10):
  print(n, end=' ')
# 1 1 2 3 5 8 13 21 34 55

2、Iterable

所有可以使用for循环的对象,统称为 Iterable (可迭代)

from collections import Iterable, Iterator
print(isinstance(fib(10), Iterable))
print(isinstance(range(10), Iterable))
# True
# True

3、Iterator

可以使用next() <__next__()> 函数调用并且不断返回下一个值的对象成为 Iterator (迭代器),表示一个惰性计算的序列。

list, dict, str是Iterable,不是Iterator:

from collections import Iterator
print(isinstance(list(), Iterator))
# False

但是可以通过iter()函数将其变为Iterator:

print(isinstance(iter(list()), Iterator))
# True

总结

以上就是本文关于浅谈python迭代器的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python好玩的项目—色情图片识别代码分享、Python实现一个简单的验证码程序、Python算法输出1-9数组形成的结果为100的所有运算式等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

Python 相关文章推荐
python列表与元组详解实例
Nov 01 Python
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
Python的Flask框架中实现分页功能的教程
Apr 20 Python
PYTHON基础-时间日期处理小结
May 05 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
Python编程中类与类的关系详解
Aug 08 Python
python实现智能语音天气预报
Dec 02 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
如何基于windows实现python定时爬虫
May 01 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
python生成excel的实例代码
Nov 08 #Python
Python 多核并行计算的示例代码
Nov 07 #Python
python判断字符串是否是json格式方法分享
Nov 07 #Python
python好玩的项目—色情图片识别代码分享
Nov 07 #Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 #Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 #Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 #Python
You might like
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
Javascript条件判断使用小技巧总结
2008/09/08 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
js实现的类似于asp数据字典的数据类型代码实例
2014/09/03 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
Python实现的RSS阅读器实例
2015/07/25 Python
浅谈django model postgres的json字段编码问题
2018/01/05 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
公司成立感言
2014/01/11 职场文书
期末学生评语大全
2014/04/24 职场文书
党建工作先进材料
2014/05/02 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
教师求职自荐信
2015/03/26 职场文书
新入职员工工作总结
2015/10/15 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书