浅谈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 相关文章推荐
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python的argparse库使用详解
Oct 09 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
Django项目中使用JWT的实现代码
Nov 04 Python
Django集成celery发送异步邮件实例
Dec 17 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 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
PHP4之真OO
2006/10/09 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
php实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
十大使用PHP框架的理由
2015/09/26 PHP
JS 继承实例分析
2008/11/04 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
Get中文乱码IE浏览器Get中文乱码解决方案
2013/12/26 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
python冒泡排序简单实现方法
2015/07/09 Python
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python程序退出方式小结
2017/12/09 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
python画微信表情符的实例代码
2019/10/09 Python
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
生产经理的自我评价分享
2013/11/07 职场文书
中药专业自荐信范文
2014/03/18 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
学习保证书怎么写
2015/02/26 职场文书
Android中View.post和Handler.post的关系
2022/06/05 Java/Android