zoukankan      html  css  js  c++  java
  • python全栈脱产第13天------迭代器、

    一、迭代器

      定义:迭代器指的是迭代取值的工具;迭代是一个重复的过程,每一次重复都是基于上一次的结果而来,不只是单次的重复

      用处:迭代器提供了一种通用的且不依赖索引和key来取值的迭代取值方式

      用法:可迭代对象调用__iter__用法变成迭代器对象,在调用__next__用法来取值,当无值时,报错

      可迭代对象:可以调用__iter__用法

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

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

            结论:迭代器对象一定是可迭代的函数,而可迭代的对象却不一定是迭代器对象

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

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

      for循环工作原理:1.先调用in后面那个对象的__iter__方法,将其变成一个迭代器对象

               2.调用__next__,将得到的返回值赋值给变量名k

               3.循环往复直到next抛出异常,for会自动捕捉异常然后结束循环

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

      总结:优点:1.提供一种通用的不依赖索引和key取值的迭代取值方式

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

         缺点:1.取值不如索引和key取值灵活(不能指定取某个值)

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

  • 相关阅读:
    数据加密算法详解
    自定义标签+阻尼动画+圆角图片+titleBar随滑动渐隐和显示
    Android MVP Plugin,一键完成MVP结构代码编写
    jquery-validate校验
    C# 后台获取请求来源、文件下载
    【通用邮件发送】C# QQ 网易邮箱
    【asp.net mvc】 扩展 htmlhelper 实现分页
    在MVC5中使用Ninject 依赖注入
    c# txt 文件上传、写入TXT文件、创建图形验证码
    uploadify图片上传配置
  • 原文地址:https://www.cnblogs.com/zhouyi0316/p/9432165.html
Copyright © 2011-2022 走看看