zoukankan      html  css  js  c++  java
  • day04.2-迭代器

    1. 迭代器协议:

       对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代(只能往后走,不能往前退)。

    2. 可迭代对象:

       实现了迭代器协议的对象(即对象内部定义了一个__iter__)。

       python的内部工具(如for循环、sum、min、max函数等)通过迭代器协议来实现对象的访问。

     1 s = [1,2,3,4]
     2 iter_s = s.__iter__()     #或iter(s),遵循迭代器协议,生成可迭代对象,其中try用于异常捕捉
     3 print(iter_s.__next__())    #或next(iter_s),按照迭代器提供的next方法依次访问列表中各元素
     4 print(iter_s.__next__())
     5 print(iter_s.__next__())
     6 print(iter_s.__next__())
     7 
     8 """
     9 运行结果:
    10     1
    11     2
    12     3
    13     4
    14 """

       字符串、列表、元组、字典、集合、文件等本身都不是迭代对象,只是在for循环时,调用了它们内部的__iter__方法,将其变成了可迭代对象。

    3. 用while模拟for循环内部原理

     1 s = [1,2,3,4]
     2 iter_s = s.__iter__()
     3 while True:
     4     try:
     5         print(iter_s.__next__())
     6     except StopIteration:
     7         print("迭代完毕,循环终止")
     8         break
     9 
    10 """
    11 运行结果:
    12     1
    13     2
    14     3
    15     4
    16     迭代完毕,循环终止
    17 """
  • 相关阅读:
    Hadoop学习资料收集
    sed使用详解
    shell编程001
    电影《无法触碰》
    正则表达式
    I/O重定向与管道
    bash基础知识
    用户权限模型
    Linux文件管理常用命令
    根文件系统详解
  • 原文地址:https://www.cnblogs.com/zizaijiapu/p/10590245.html
Copyright © 2011-2022 走看看