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关键字的返回值

    
    
  • 相关阅读:
    thinkphp中field的用法
    Thinkphp常用标签
    thinkphp框架的相关总结
    TP 控制器扩展_initialize方法实现原理
    Thinkphp中的volist标签(查询数据集(select方法)的结果输出)用法简介
    php中遍历数组的方法
    django自定义过滤器
    centos7 安装 mysql
    centos7 安装 nginx
    centos 服务器改名
  • 原文地址:https://www.cnblogs.com/legend27/p/11045910.html
Copyright © 2011-2022 走看看