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