lambda
lambda是匿名函数,没有函数名,你可以现场定义、直接使用:
>>> a=map(lambda x:x*2,[1,2,3])
>>> list(a)
[2, 4, 6]
lambda x:x*2 表示将x=x*2 ,对于偶尔一用的函数,就可以这样写
map
map函数是对一个序列的每个项依次执行函数,下面是对一个序列每个项都乘以2
a=map(lambda x:x*2,[1,2,3])
reduce
reduce函数是对一个序列的每个项迭代调用函
reduce(lambda x,y:x*y,range(1,4)) 这个例子用来求3!
闭包:
闭包就是函数中又定义函数,里面的函数可以使用外部作用域内的变量,但不是全局变量,所以一次创建外部函数,则多次调用内部函数时外部作用域内的变量还是有效的;多次运行外部函数,则会重新创建闭包,原来外部变量的值也不会受到影响,
看个例子:
def hellocounter (name): count=[0] def counter(): count[0]+=1 print 'Hello,',name,',',str(count[0])+' access!' return counter hello = hellocounter('ma6174') hello() hello() hello()
运行结果:
Hello, ma6174 , 1 access!
Hello, ma6174 , 2 access!
Hello, ma6174 , 3 access!