Python 深入理解

生成器yield

yield关键字临时挂起函数,返回值,然后继续执行,最初用于简写迭代器(iterator)逻辑,现在通常是为实现coroutine模块的通用工具

def _xrange(x=None,y=None,step=1):
   s=start
   if start<stop and z>0:
      while s<stop:
           yield s
          s+=z
   elif start>stop and z<0:
       while s>stop:
           yield s
          s+=z

 

用生成器和列表推导式生成序列。列表推导式技术随后我们详细地讨论

>>>print [i for i in _xrange(10)]
[0,1,2,3,4,5,6,7,8,9]
>>>print [i for i in _xrange(2,10)]
[2,3,4,5,6,7,8,9]
>>>print [i for i in _xrange(10,2)]
[]
>>>print [i for i in _xrange(2,10,5)]
[2,7]
>>>print [i for i in _xrange(10,2,-1)]
[10,9,8,7,6,5,4,3]

 

列表及迭代推导式comprehension

推导式可以航标地生成序列羅吉,可以用于简化

map/filter/reduce 组合

posted on 2011-04-11 23:33  小影帆  阅读(184)  评论(0编辑  收藏  举报

导航