浅谈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 29 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Python 闭包的使用方法
Sep 07 Python
老生常谈Python startswith()函数与endswith函数
Sep 08 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
使用python画社交网络图实例代码
Jul 10 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
django实现支付宝支付实例讲解
Oct 17 Python
没编程基础可以学python吗
Jun 17 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 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
yii2中添加验证码的实现方法
2016/01/09 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
python代码中怎么换行
2020/06/17 Python
快速了解Python开发环境Spyder
2020/06/29 Python
pandas 数据类型转换的实现
2020/12/29 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
数百万免费的图形资源:Freepik
2020/09/21 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
听课评语大全
2014/04/30 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
感恩教师主题班会
2015/08/12 职场文书
高中数学教学反思范文
2016/02/18 职场文书
餐厅开业活动方案
2019/07/08 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android