• python生成器,函数,数组



    1.什么是生成器
    用一个比喻来形容,工厂中生产保龄球的流水线,机器每次只生产一个保龄球,下次继续生产下一个,直到停止(原料不足,停止供电等条件)为止。
    机器就是我们的生成器。

    2.使用示例
    在python中数组的语法是[]

    L=[x * x for x in range(10)]
    print L

    生成器的语法是()

    g=(x*x for x in range(10))
    print g
    print g.next()

    运行结果如下:

    运行后,数组全部初始化,生成器执行一次,记录当前位置,下次继续执行。

    3.使用yield生成器

    def odd():
        print "step 1"
        yield
        print "step 2"
        yield
        print "step 3"
        yield
    o=odd()
    o.next()
    o.next()
    o.next()

    运行结果如下:

    加入yield后,odd就不是普通函数了,而是一个生成器,在执行过程中,遇到yield就中断,下次又继续执行。


    4.生成器和数组的区别
    比如一组100万的数据,用数组来存储,需要占用很大的存储空间,而用生成器,每次只占用一个空间。

    5.生成器和函数的区别
    函数在return或者函数最后一条语句后返回,生成器generator在每次调用next()时执行,遇到yield就返回,再次执行时从上次返回的yield语句处继续执行。

  • 相关阅读:
    51nod乘积之和
    Dell服务器安装OpenManage(OMSA)
    Nginx反向代理PHP
    搭建haproxy
    108. Convert Sorted Array to Binary Search Tree
    60. Permutation Sequence
    142. Linked List Cycle II
    129. Sum Root to Leaf Numbers
    118. Pascal's Triangle
    26. Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/6478539.html
Copyright © 2020-2023  润新知