迭代的理解, 深入理解Python迭代器和可迭代对象

迭代:可以理解成循环,反反复复的执行某一步骤、程序或者事件。
          不断的循环,《反馈问题》、《解决问题》,把程序做到尽可能满足客户的要求。

 

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...

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值