zoukankan      html  css  js  c++  java
  • python Genarator函数

    Generator函数的定义与普通函数的定义没有什么区别,只是在函数体内使用yield生成数据项即可。Generator函数可以被for循环遍历,而且可以通过next()方法获得yield生成的

    数据项。

    def func(n):
    	for i in range(n):
    		yield i
    for i in func(3):
    	print i
    r=func(3)
    print r.next()
    print r.next()
    print r.next()
    print r.next()


    0
    1
    2
    0
    1
    2
    Traceback (most recent call last):
      File "generator.py", line 10, in <module>
        print r.next()
    StopIteration

    yield保留字与return 语句的返回值和执行原理都不相同。yield生成值并不会中止程序的执行,返回值后程序继续往后执行。return 返回值后,程序将中止执行。

    Generator函数一次只返回一个数据项,占用更少的内存。每次生成数据都要记录当前的状态,便于下一次生成数据。

    当程序需要较高的性能或一次只需要一个值进行处理时,使用generator函数。当需要获取一次性一组元素的值时,使用序列。


  • 相关阅读:
    [日常训练]大灾难
    [cf235D]Graph Game
    [日常训练]选课
    [日常训练]挂科
    [学习笔记]概率&期望
    [日常训练]yayamao的神题
    [学习笔记]原根
    LOJ#2132. 「NOI2015」荷马史诗
    LOJ#2131. 「NOI2015」寿司晚宴
    LOJ#2129. 「NOI2015」程序自动分析
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3206627.html
Copyright © 2011-2022 走看看