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 组合