生成器都是迭代器,迭代器不一定是生成器
def fansik(max):
n, before, after = 0, 0, 1
while n < max:
print(before)
before, after = after, before + after
n += 1
fansik(10) 生成器方式
def fansik(max):
n, before, after = 0, 0, 1
while n < max:
yield before
before, after = after, after + before
n += 1
a = fansik(8)
for i in a:
print(i)

迭代器

满足两个条件:
1、有iter方法
2、有next方法 for 循环内部三件事:
1、调用可迭代对象的iter方法返回一个迭代器对象
2、不断调用迭代器对象的next方法
3、处理StopIteration 小结:
凡是可用作for循环的对象都是Iterable类型;
凡是可用作于next()函数的对象都是Iterator类型,他们表示一个惰性计算的序列;
集合数据类型list、dic、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象
参考文章:http://www.cnblogs.com/yuanchenqi/articles/5769491.html

最新文章

  1. Mysql联合,连接查询
  2. Shiro - 限制并发人数登录与剔除
  3. TimeQuest 静态时序分析 基本概论
  4. JQuery------$.ajax()的使用方法
  5. java读取excel
  6. php安全编程: register_globals的安全性
  7. TCP/IP的Socket编程
  8. 如何有效的使用C#读取文件
  9. Solved: Qt Library LNK 2001 staticMetaObject error
  10. webpack常用的插件安装命令
  11. css左右侧自动填充宽度布局
  12. [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream
  13. 《Dive into Python》Chapter 2 and Chapter 3 笔记
  14. Memcached使用笔记
  15. 为什么析构函数要加visual?
  16. 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
  17. blob的存储与读取
  18. Mac下面的SecureCRT以及破解方案详解
  19. ubuntu14.04 python2.7 安装配置OpenCV3.0
  20. arcgis api 3.x for js 实现克里金插值渲染图不依赖 GP 服务(附源码下载)

热门文章

  1. Quarta介绍
  2. OpenAPI初体验
  3. UVA 1363 Joseph&#39;s Problem 找规律+推导 给定n,k;求k%[1,n]的和。
  4. oracle密码过期解决方法
  5. 初涉Quartz
  6. 41个Web开发者必须收藏的JavaScript实用技巧
  7. [Unity热更新]tolua# &amp; LuaFramework(一):基础
  8. R-ArcGIS探秘(1)安装以及Sample执行
  9. Apache JMeter录制HTTPS的方法及测试中常见问题解决
  10. Android开发:《Gradle Recipes for Android》阅读笔记1.3