浅谈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操作CouchDB数据库简单示例
Mar 10 Python
Python使用SocketServer模块编写基本服务器程序的教程
Jul 12 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
Python 3.8 新功能全解
Jul 25 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
Python装饰器用法与知识点小结
Mar 09 Python
python实现五子棋程序
Apr 24 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
python实现定时发送邮件
Dec 23 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 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强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
node跨域请求方法小结
2017/08/25 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
Vue组件通信的四种方式汇总
2018/02/08 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
详解如何运行vue项目
2019/04/15 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
Python 元类实例解析
2018/04/04 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
如何使用python切换hosts文件
2020/04/29 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
数学高效课堂实施方案
2014/03/29 职场文书
健康教育评估方案
2014/05/25 职场文书
护理专业求职信
2014/06/15 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
2014年行政部工作总结
2014/11/19 职场文书
意向协议书
2015/01/27 职场文书