zoukankan      html  css  js  c++  java
  • python 迭代器(第二次总结)

    迭代器

    1、先明白迭代器是什么意思

    迭代:不断的取值的(器)工具

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

    (单纯的重复不是迭代)

    2、为什么要有迭代器

    不依赖索引取值的方法,通用

    3、迭代器有两个对象

    (1)、一个是可迭代对象,(在python内置有__iter__方法的对象都是可迭代的对象)

    (2)、一个是可迭代对象,(在python内置同时有__iter__方法和__next__方法的对象就是迭代器对象),或

    同iter()方法转变成迭代器对象

    案例:

    info = {'name': 'egon', 'age': 18, 'is_beautiful': True, 'sex': "male"
            }
    #把可迭代的对象,转成迭代器对象
    info_iter = info.__iter__()
    
    res1 = info_iter.__next__()
    
    res2 = info_iter.__next__()
    
    res3 = info_iter.__next__()
    
    res4 = info_iter.__next__()
    
    res5 = info_iter.__next__()
    print(res1)
    print(res2)
    print(res3)
    print(res4)
    #这里已经取不到值,会报错
    print(res5)
    

      

    结果:

    C:pythonPython35python.exe D:/hanshu/迭代器/d1.py
    Traceback (most recent call last):
      File "D:/hanshu/迭代器/d1.py", line 14, in <module>
        res5 = info_iter.__next__()
    StopIteration
    

    得出结论:

    一旦迭代器取值干净,再继续取就会抛出stopIteration (简单通俗的说:迭代器循环取完值,在取,就没有值了)

    4、for循环(即 迭代器循环)

    #for循环即迭代器循环
    
    #l是可迭代对象
    l = [1,2,3,4,5,6,7]
    
    l.__iter__()
    
    '''
    for 循环的底层运行过程,调用iter()方法把l(可迭代对象)转变成(迭代器对象)
    然后生成的迭代器对象调用next()方法取值,把值赋值给i,一次循环,基于上次的结果,重复循环
    ,直到值全部取完,遇到StopIteration退出,结束循环。
    '''
    for i in l:
        pass
    

      

     

     

                

  • 相关阅读:
    大型web系统数据缓存设计
    配置AndroidStudio
    android-studio 安装gradle
    Gradle的简介与安装
    史上最详细的Android Studio系列教程四--Gradle基础
    Android SDK
    如何让猎头找到你
    android-volley-manager
    Android Studio导入Project的方法
    设置Android Studio启动时可选最近打开过的工程
  • 原文地址:https://www.cnblogs.com/wuheng-123/p/9177968.html
Copyright © 2011-2022 走看看