浅谈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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
python的dict,set,list,tuple应用详解
Jul 24 Python
Python中运行并行任务技巧
Feb 26 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
django 修改server端口号的方法
May 14 Python
python3+requests接口自动化session操作方法
Oct 13 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
opencv 阈值分割的具体使用
Jul 08 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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启用zlib压缩文件的配置方法
2013/06/12 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
json的使用小结
2016/06/08 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
python实现线程池的方法
2015/06/30 Python
Python 类与元类的深度挖掘 I【经验】
2016/05/06 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python pandas生成时间列表
2019/06/29 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
Python sys模块常用方法解析
2020/02/20 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
python实现FTP循环上传文件
2020/03/20 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
python中time.ctime()实例用法
2021/02/03 Python
酒店个人求职信范文
2014/01/25 职场文书
高二物理教学反思
2014/02/08 职场文书
运动会获奖感言
2014/02/11 职场文书
教师读书活动总结
2014/05/07 职场文书
验房委托书
2014/08/30 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript