zoukankan      html  css  js  c++  java
  • Python迭代器用法与迭代器协议

    一递归和迭代
    递归 自己调用自己
    迭代 能用for循环遍历
    二迭代器协议
    1.迭代器协议是:对象必须提供一个next方法,执行该方法要么返回迭代的下一项,要么就引起一个 StopIteration异常,以终止迭代(只能往后走 不能往前推)
    2.可迭代对象: 实现了 迭代器协议对象(如何实现: 对象内部定义了一个 __iter__() 方法
    3.协议是一种约定,可迭代对象 实现了迭代器协议,python的内部工具(如for循环, sum , min max函数)使用迭代器协议访问对象
    三 Python中强大的for循环机制
    for循环的本质: 循环所有对象,全都是使用迭代器协议
    字符串。列表 元组 字典 集合 文件对象 都不是可迭代对象 因为没有 next方法 只不过是 for循环式,
    调用了他们内部的 __iter__方法,把他们变成了可迭代对象
    l = [1,2,3]
    for i in l :                i_l调用了l.__iter__ 并 捕捉了 StopIteration异常


    l.__iter__()
    实际上 next方法-----> iter_l.__next__()
    # 遵循迭代器协议,生成可迭代对象
    总结:for循环可以循环 序列化对象 (字符串, 列表 元组)
    也可以遍历 非序列对象(集合,文件对象 字典等等)

    纵有疾风起,人生不言弃!
  • 相关阅读:
    2015多校.Zero Escape (dp减枝 && 滚动数组)
    UVa-11809
    UVa-1588 Kickdown
    UVa-1587
    UVa-10340
    UVa-202
    UVa-1368
    UVa-232 Crossword Answers
    UVa-227
    UVa-455 Periodic Strings
  • 原文地址:https://www.cnblogs.com/poetl/p/8315592.html
Copyright © 2011-2022 走看看