zoukankan      html  css  js  c++  java
  • Python学习之路——迭代器

    迭代器

    # 通过迭代器取值优缺点:
    
    # 优点:不依赖索引,完成取值
    # 缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值)

    可迭代对象

    '''
    可迭代对象: 有__iter__()方法的对象,调用该方法返回迭代器对象
    
    有哪些:str | list | tuple | dict | set | range() | file | 迭代器对象 | enumerate() | 生成器
    '''

    迭代器对象

    '''
    迭代器对象: 有__next__()方法的对象,也就是用该方法一次从迭代器对象中获取一个值,取出一个少一个
    
    有哪些:file | enumerate() | 生成器
    
    重点:
    1.从迭代器对象中取元素,取一个少一个,如果要从头开始去,需要重新获得拥有所有元素的迭代器对象
    2.迭代器对象也有__iter__()方法,调用后得到的是自己本身(当前含义几个元素,得到的就只有几个元素的迭代器对象)
    '''

    for循环迭代

    '''
    1.自动获取被迭代对象的迭代器对象
    2.在内部一次一次调用__next__()方法取值;
    3.自动完成异常处理
    '''
    View Code

    生成器

    # 生成器:包含yield关键字的函数就是生成器
    def my_generator():
        yield 1
        yield 2
        yield 3
    g_obj = my_generator()
    # my_generator()并不会执行函数体,得到的返回值就是生成器对象
    # 生成器对象就是迭代器对象
    r1 = g_obj.__next__() # 1
    
    for v in g_obj:
        print(v)  # 2 | 3
  • 相关阅读:
    九省联考2018 IIIDX
    WC2020 猜数游戏
    Gym101821D Search Engine
    Gym102586B Evacuation
    Gym102576D Clique
    UOJ498 新年的追逐战
    LOJ6703 小 Q 的序列
    Codechef A Leisurely Journey
    LG5050 多项式多点求值 和 LG5158 多项式快速插值
    PE427 n-sequences 和 ZJOI2020 抽卡
  • 原文地址:https://www.cnblogs.com/king-home/p/10679752.html
Copyright © 2011-2022 走看看