时间:2021-05-22
本文实例讲述了python生成器generator用法。分享给大家供大家参考。具体如下:
使用yield,可以让函数生成一个结果序列,而不仅仅是一个值
例如:
def countdown(n): print "counting down" while n>0: yield n #生成一个n值 n -=1 >>> c = countdown(5) >>> c.next() counting down 5 >>> c.next() 4 >>> c.next() 3next()调用生成器函数一直运行到下一条yield语句为止,此时next()将返回值传递给yield.而且函数将暂停中止执行。再次调用时next()时,函数将继续执行yield之后的语句。此过程持续执行到函数返回为止。
通常不会像上面那样手动调用next(), 而是使用for循环,例如:
next(), send()的返回值都是yield 后面的参数, send()跟next()的区别是send()是发送一个参数给(yield n)的表达式,作为其返回值给m, 而next()是发送一个None给(yield n)表达式, 这里需要区分的是,一个是调用next(),send()时候的返回值,一个是(yield n)的返回值,两者是不一样的.看输出结果可以区分。
def h(n): while n>0: m = (yield n) print "m is "+str(m) n-=1 print "n is "+str(n) >>> p= h(5) >>> p.next() 5 >>> p.next() m is None n is 4 4 >>> p.send("test") m is test n is 3 3希望本文所述对大家的Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言生成器generator生成器的本质是一个迭代器(iterator)要理解生成器,就要在理解一下迭代,可迭代对象,迭代器,这三个概念Python生成器gen
生成器定义在Python中,一边循环一边计算的机制,称为生成器:generator。为什么要有生成器列表所有数据都在内存中,如果有海量数据的话将会非常耗内存。如
生成器(generator)概念生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIteration异常结束。
4.生成器(generator)4.1.生成器简介首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Py
本文实例讲述了python生成器推导式用法。分享给大家供大家参考,具体如下:1.生成器推导式是继列表推导式后的有一中python推导式,他比列表推导式速度更快,