浅谈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正则表达式的使用范例详解
Aug 08 Python
跟老齐学Python之关于类的初步认识
Oct 11 Python
Python中断言Assertion的一些改进方案
Oct 27 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
python2 与 python3 实现共存的方法
Jul 12 Python
python 接收处理外带的参数方法
Dec 03 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
Python二元算术运算常用方法解析
Sep 15 Python
Python 生成短8位唯一id实战教程
Jan 13 Python
用Python简陋模拟n阶魔方
Apr 17 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
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
php错误日志简单配置方法
2016/07/11 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
用jscript实现列出安装的软件列表
2007/06/18 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
2013/08/12 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
在Python中关于中文编码问题的处理建议
2015/04/08 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
2017/11/14 Python
Python 统计字数的思路详解
2018/05/08 Python
python函数的万能参数传参详解
2019/07/26 Python
查看keras的默认backend实现方式
2020/06/19 Python
生物专业个人自荐信范文
2013/11/29 职场文书
大学毕业生推荐信
2014/07/09 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
基于Python的EasyGUI学习实践
2021/05/07 Python
MySQL查询日期时间
2022/05/15 MySQL