浅谈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使用random和tertools模块解一些经典概率问题
Jan 28 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
Apr 11 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
python os.path模块常用方法实例详解
Sep 16 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
Python实现聚类K-means算法详解
Jul 15 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 静态化实现代码
2009/03/20 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
javascript 闭包疑问
2010/12/30 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
js实现图片360度旋转
2017/01/22 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python2.7实现邮件发送功能
2018/12/12 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
html5教程画矩形代码分享
2013/12/04 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
老师对学生的评语
2014/04/18 职场文书
交通安全标语
2014/06/06 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
幼儿园教师节活动总结
2015/03/23 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
使用Ajax实现进度条的绘制
2022/04/07 Javascript