迭代:可以理解成循环,反反复复的执行某一步骤、程序或者事件。
不断的循环,《反馈问题》、《解决问题》,把程序做到尽可能满足客户的要求。
1 迭代器
迭代是指对集合元素遍历的一种方式,迭代器是可以实现对集合从前向后依次遍历的一个对象
2 可迭代对象
-
定义(表面理解)
表面来看,只要可以用 for...in...进行遍历的对象就是可迭代对象
-
自定义可迭代对象(本质)
语法层面,如果一个对象实现了__iter__方法,那么这个对象就是可迭代对象
-
判断是否是可迭代对象(Iterable)
通过调用Python内置的isinstance来判断是否是Iterable的实例 In [9]: isinstance([],Iterable) Out[9]: True
3. 迭代器(可迭代对象)的应用
因为通常可迭代对象本身就是一个迭代器,所以二者的用途一般是一致的。我们发现迭代器的本质就是通过next()函数(next本质是调用迭代器的_next方法)不断得到下一个数据,假如需要遍历的数据是可以通过计算规则依次得到的,这时候通过迭代器(升级版本是生成器)去遍历就会避免传统遍历需要依赖已有数据集合从而需要占用大量内存的弊端。下面通过一个经典例子求斐波那契数列的前n项来说明迭代器的优势。
斐波那契数列
数列中第一个数为0,第二个数为1,其后的每一个数都是前两个数相加之和:
0,1,1,2,3,5,8,13,21,34...