浅谈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 for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python编程之序列操作实例详解
Jul 22 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
python抓取搜狗微信公众号文章
Apr 01 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
python实现梯度下降和逻辑回归
Mar 24 Python
解决使用python print打印函数返回值多一个None的问题
Apr 09 Python
python exit出错原因整理
Aug 31 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
python中pycryto实现数据加密
Apr 29 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注入实例
2006/10/09 PHP
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
几种tab切换详解
2017/02/03 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
基于javascript实现日历功能原理及代码实例
2020/05/07 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Python 自动化表单提交实例代码
2017/06/08 Python
Java分治归并排序算法实例详解
2017/12/12 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
反腐倡廉标语
2014/06/24 职场文书
工伤私了协议书范本
2014/11/24 职场文书
财务工作失误检讨书
2015/02/19 职场文书
免职通知
2015/04/23 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python
从原生JavaScript到React深入理解
2022/07/23 Javascript