浅谈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 测试实现方法
Dec 24 Python
python线程、进程和协程详解
Jul 19 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
python 日志增量抓取实现方法
Apr 28 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
Python笔记之工厂模式
Nov 20 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
python爬虫筛选工作实例讲解
Nov 23 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 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操作JSON格式数据的实现代码
2011/12/24 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php统计数组元素个数的方法
2015/07/02 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
javascript onmouseout 解决办法
2010/07/17 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
webpack打包js的方法
2018/03/12 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
Python下简易的单例模式详解
2019/04/08 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
南京某公司笔试题
2013/01/27 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
团干部培训方案
2014/06/03 职场文书