迭代器

1、先明白迭代器是什么意思

迭代:不断的取值的(器)工具

迭代器:就是一个重复的过程,每一次重复都是基于上一次的结果而来的。

(单纯的重复不是迭代)

2、为什么要有迭代器

不依赖索引取值的方法,通用

3、迭代器有两个对象

(1)、一个是可迭代对象,(在python内置有__iter__方法的对象都是可迭代的对象)

(2)、一个是可迭代对象,(在python内置同时有__iter__方法和__next__方法的对象就是迭代器对象),或

同iter()方法转变成迭代器对象

案例:

info = {'name': 'egon', 'age': 18, 'is_beautiful': True, 'sex': "male"
}
#把可迭代的对象,转成迭代器对象
info_iter = info.__iter__() res1 = info_iter.__next__() res2 = info_iter.__next__() res3 = info_iter.__next__() res4 = info_iter.__next__() res5 = info_iter.__next__()
print(res1)
print(res2)
print(res3)
print(res4)
#这里已经取不到值,会报错
print(res5)

  

结果:

C:\python\Python35\python.exe D:/hanshu/迭代器/d1.py
Traceback (most recent call last):
File "D:/hanshu/迭代器/d1.py", line 14, in <module>
res5 = info_iter.__next__()
StopIteration

得出结论:

一旦迭代器取值干净,再继续取就会抛出stopIteration (简单通俗的说:迭代器循环取完值,在取,就没有值了)

4、for循环(即 迭代器循环)

#for循环即迭代器循环

#l是可迭代对象
l = [1,2,3,4,5,6,7] l.__iter__() '''
for 循环的底层运行过程,调用iter()方法把l(可迭代对象)转变成(迭代器对象)
然后生成的迭代器对象调用next()方法取值,把值赋值给i,一次循环,基于上次的结果,重复循环
,直到值全部取完,遇到StopIteration退出,结束循环。
'''
for i in l:
pass

  

 

            

最新文章

  1. XmlReader和XElement组合之读取大型xml文档
  2. Android下如何计算两经纬点之间距离
  3. C#几个经常用到的字符串截取
  4. 安装opencv以及遇到的坑
  5. Flex4 自定义通用的ImageButton
  6. json处理复杂对象jsonConfig
  7. ASP.NET MVC 解决LINQ表达式中的SqlMethods 未找到命名空间问题
  8. Spring 之 注解实现返回json
  9. Yii2.0官方高级模板的目录结构分析
  10. 老李分享:webservice是什么?2
  11. 使用可以为 null 的类型
  12. BZOJ_1334_[Baltic2008]Elect_DP+语文题
  13. 史上最全的springboot导出pdf文件
  14. Jdk和Spring Boot版本选择
  15. vue+axios跨域解决方法
  16. JVM-crash查看hs_err_pid.log日志
  17. zsh快捷键
  18. [jquery]为jQuery.ajax添加onprogress事件
  19. Cloudera Manager的安装
  20. BZOJ4437 : [Cerc2015]Looping Labyrinth

热门文章

  1. dlerror和dlclose用法
  2. Python---函数2---王伟
  3. Adboost几个要点分析
  4. JS实现表格隔行变色
  5. 字典树Trie--实现敏感词过滤
  6. centos 中 redis 的安装
  7. python学习之路(10)--难点
  8. C++入门经典-例4.2-调用默认参数的函数
  9. js手写笔记
  10. snmpEngineBoots &amp; snmpEngineID数据存储到非易失性存储设备