浅谈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实现的防DDoS脚本
Feb 08 Python
使用PDB简单调试Python程序简明指南
Apr 25 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
python中根据字符串调用函数的实现方法
Jun 12 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
python实现基于SVM手写数字识别功能
May 27 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
Python的高阶函数用法实例分析
Apr 11 Python
Python tkinter模版代码实例
Feb 05 Python
python datetime处理时间小结
Apr 16 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 Python
Python模拟键盘输入自动登录TGP
Nov 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
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
php实现文件下载代码分享
2014/08/19 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
浅谈Node异步编程的机制
2017/10/18 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
python实现五子棋小游戏
2020/03/25 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
医学院校毕业生自荐信范文
2014/01/01 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
元旦晚会主持词
2014/03/24 职场文书
诉讼和解协议书
2016/03/23 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
Java如何实现树的同构?
2021/06/22 Java/Android
Python进程池与进程锁之语法学习
2022/04/11 Python