第十三天笔记

一、什么是迭代器 1、迭代器指的是迭代取值的工具

2、迭代是一个重复的过程,每一次重复都是基于上一次的结果而来

单纯的重复不是迭代

迭代:重复+每次重复都是基于上一次的结果而进行的

二、为何要用迭代器

迭代器提供了一种通用的且不依赖于索引的迭代取值方式

三、可迭代的对象iterable;但凡内置有——iter——方法的对象都称之为可迭代的对象

可迭代的对象:str,list,tuple,dict,set,文件对象

执行可迭代对象下的——iter——方法,返回的值就是一个迭代器对象iterator

 三、迭代器对象

1、既内置有——next——方法的对象,执行迭代器——next——方法可以不依赖索引取值

2、又内置有——iter——方法的对象,执行迭代器——iter——方法得到的仍然是迭代器本身

ps:1、迭代器对象一定是可迭代的对象,而可迭代的对象却不一定是迭代器对象

2、文件对象本身就是一个迭代器对象

四、同一个迭代器只能完整地取完一次值

for本质应该称之为迭代器循环

工作原理1、先调用in后面那个对象的——iter——方法,将其变成一个迭代器对象

2、调用next(迭代器),将得到的返回值赋值给变量名k 3、循环往复直到next(迭代器)抛出异常,for会自动捕捉异常然后结束循环

ps:从for角度,可以分辨出但凡可以被for循环循环取值的对象都是可迭代的对象

三、迭代器总结

优点:1、提供一种通用的且不依赖于索引的迭代取值方式

2、同一时刻在内存中只存在一个值,更节省内存

缺点: 1.取值不如按照索引的方式灵活,(不能取指定的某一个值,而且只能往后取)

 2、无法预测迭代器的长度

posted @ 2018-08-10 17:11  zhouhao666  阅读(78)  评论(0编辑  收藏  举报