浅谈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 相关文章推荐
python3序列化与反序列化用法实例
May 26 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
python3读取MySQL-Front的MYSQL密码
May 03 Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
python安装第三方库如xlrd的方法
Oct 31 Python
Django 用户认证Auth组件的使用
Nov 30 Python
Python3 类型标注支持操作
Jun 02 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之sphinx
2013/05/15 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
PHP小技巧之函数重载
2014/06/02 PHP
smarty中post用法实例
2014/11/28 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
python中随机函数random用法实例
2015/04/30 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
C/C++程序员常见面试题一
2012/12/08 面试题
员工自我鉴定
2013/10/09 职场文书
采购部部门职责
2013/12/15 职场文书
员工工作表扬信范文
2014/01/13 职场文书
奶茶店创业计划书范文
2014/01/17 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
联欢晚会主持词
2014/03/25 职场文书
初一学生期末评语
2014/04/24 职场文书
小学安全汇报材料
2014/08/14 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
特岗教师个人总结
2015/02/10 职场文书
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS