zoukankan      html  css  js  c++  java
  • 迭代器

      

    from collections import Iterable #检测一个对象是否可迭代

    #   ‘——iter——’这个方法导致了一个数据类型的可迭代

          iter

          #只要包含了“双下iter”方法的数据类型就是可迭代的  —   可迭代协议

          #数据类型和pyth解释器订下来的协议

          #  print([1,2,3].__iter__())  #   list_iterator

         #  迭代器就是实现了能从其中一个一个的取出值来

         迭代器中有  __next__  和  __iter__  方法   ——  迭代器协议

         学过的所有可以被for循环的  基本数据类型 都是可迭代的  而不是迭代器

    # 可迭代对象

           可迭代协议:含有 __iter__方法的对象

           from collections  import iterable

           print(isinstance(要检测的对象,Iterable))

    #  迭代器

      # 迭代器协议:含有 __iter__ 和  __next__ 方法的对象

         from collections import Iyerator

         print(isinstance(要检测的对象,Iterator))

    # 迭代器和可迭代对象之间的关系

          迭代器包含了可迭代对象

          迭代器  =   可迭代对象.__iter__() 

    #   为什么要有迭代器,迭代器存在的本质是什么:

           1.能够对python中的基本数据类型进行统一的遍历,不需要关心每一个值是什么

           2.它可以节省内存 — 惰性运算

        迭代器   天生的,比如文件句柄   后天的,可迭代对象.__iter__()

  • 相关阅读:
    Excel Add-in
    并发控制MsSql
    Kaggle实战分类问题2
    NuGet
    Pomelo分布式游戏服务器框架
    Ambari
    oracle 多行转多列查询
    Oauth2.0 用Spring-security-oauth2
    bug排查小结
    Linux之lsof命令
  • 原文地址:https://www.cnblogs.com/ez2z/p/7473862.html
Copyright © 2011-2022 走看看