Python基础-生成器和迭代器
2024-08-24 09:28:14
生成器都是迭代器,迭代器不一定是生成器
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
最新文章
- Mysql联合,连接查询
- Shiro - 限制并发人数登录与剔除
- TimeQuest 静态时序分析 基本概论
- JQuery------$.ajax()的使用方法
- java读取excel
- php安全编程: register_globals的安全性
- TCP/IP的Socket编程
- 如何有效的使用C#读取文件
- Solved: Qt Library LNK 2001 staticMetaObject error
- webpack常用的插件安装命令
- css左右侧自动填充宽度布局
- [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream
- 《Dive into Python》Chapter 2 and Chapter 3 笔记
- Memcached使用笔记
- 为什么析构函数要加visual?
- 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
- blob的存储与读取
- Mac下面的SecureCRT以及破解方案详解
- ubuntu14.04 python2.7 安装配置OpenCV3.0
- arcgis api 3.x for js 实现克里金插值渲染图不依赖 GP 服务(附源码下载)
热门文章
- Quarta介绍
- OpenAPI初体验
- UVA 1363 Joseph&#39;s Problem 找规律+推导 给定n,k;求k%[1,n]的和。
- oracle密码过期解决方法
- 初涉Quartz
- 41个Web开发者必须收藏的JavaScript实用技巧
- [Unity热更新]tolua# &; LuaFramework(一):基础
- R-ArcGIS探秘(1)安装以及Sample执行
- Apache JMeter录制HTTPS的方法及测试中常见问题解决
- Android开发:《Gradle Recipes for Android》阅读笔记1.3