zoukankan      html  css  js  c++  java
  • 函数,迭代器,生成器

    迭代器:循环反馈的容器(集合类型)

    ——不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值

    优点:不依赖索引,完成取值

    缺点:不能计算长度,不能指定位取值(只能从前往后逐一取值)

    可迭代对象:内置有__iter__()方法的对象,称之为可迭代对象

    迭代器对象:内置有__next__()方法的对象,称之为迭代器对象。可以通过调用_next_()方法完成取值。

    #迭代器即迭代的工具,那什么是迭代呢?
    #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值
    while True: #只是单纯地重复,因而不是迭代
        print('===>') 
        
    l=[1,2,3]
    count=0
    while count < len(l): #迭代
        print(l[count])
    

     生成器

    只要函数内部包含有yield关键字,那么函数名()的到的结果就是生成器,并且不会执行函数内部代码

    def func():
        print('====>first')
        yield 1
        print('====>second')
        yield 2
        print('====>third')
        yield 3
        print('====>end')
    
    g=func()
    print(g) #<generator object func at 0x0000000002184360> 
    

     生成器就是迭代器

    g.__iter__
    g.__next__
    #2、所以生成器就是迭代器,因此可以这么取值
    res=next(g)
    print(res)
    

    生成器对象:就是一个迭代器对象

    ——可以通过_next_()方法取值,得到yield关键字的返回值

    
    
  • 相关阅读:
    1-4-Java 语言环境搭建
    1-3-JDK,JRE,JVM介绍
    1-2-java语言的特点及运行机制
    1-1-常用DOS命令与快捷键
    0-2-计算机硬件介绍
    一、JSP的3大指令Page,include,taglib
    springboot目录结构
    问题:qt按钮有时候点击没有反应
    vs2017+qt问题
    mysql问题
  • 原文地址:https://www.cnblogs.com/legend27/p/11045910.html
Copyright © 2011-2022 走看看