• Day4_迭代器


    迭代器:

    是一个重复的过程,每一次重复都是基于上一次的结果而来。

    可迭代对象:

    凡是对象有_iter_方法(对象._iter_),该对象就是可迭代对象。

    字符串,列表,元组,字典等都是可迭代对象。

    可迭代对象._iter_()=i  

    import try
    dic={'name':'yangshuai','sex':'m',"age":18}
    i=dic.__iter__()
    print(i)
    #可迭代对象+__iter__得到的就是迭代器对象。
    #next(i) #这个相当于迭代器对象执行一次的值,打印执行一次的值可以利用print来执行。
    
    #执行到最后,会抛出一个StopIteration异常,这样相当于程序报错,为了处理这种问题,我们可以利用try....except
    iter_l=iter(i)
    while True:
        try:
            print(next(iter_l))
        except StopIteration:
            break
    

    迭代器的优点:

    1,提供了一种统一的(不依赖索引)的迭代方式

    2,迭代器本身,比起其他数据类型更省内存,一次只在内存中加载一个值。

    迭代器的缺点:

    1,一次性的往后走,不能回退

    2,不如索引灵活

    3,无法预知什么时候取值结束,既无法预知长度。

    补充:

    判断是不是可迭代对象:

    dic={'name':'yangshuai','sex':'m',"age":18}
    i=dic.__iter__()
    from collections import Iterable,Iterator
    #判断是不是可迭代对象
    print(isinstance(i,Iterable))
    #判断是不是迭代器
    print(isinstance(i,Iterator))
    
  • 相关阅读:
    float、定位、inline-block、兼容性需注意的特性总结
    meta 标签 详细说明
    兼容探讨一
    javascript性能优化总结二(转载)
    javascript性能优化总结一(转载人家)
    特效合集(原生JS代码)适合初学者
    svg实现简单沙漏旋转
    SVG制作简单的图形
    SVG的简单介绍
    jQuery之效果
  • 原文地址:https://www.cnblogs.com/sexiaoshuai/p/7263318.html
Copyright © 2020-2023  润新知