Python lambda运算符
转载请标明出处().
用处
创建表达式形式的匿名函数;
首要用途是指定短小的回调函数;
格式
lambda args:expression
args,可以是以,隔开的参数列表;
expression为表达式;
返回的是expression的结果;
注意项
- lambda语句定义的代码必须是合法的表达式;
- lambda语句中不能出现多条语句和其他非表达式语句;
- lambda表达式遵循与函数相同的作用域规则;
注:如不懂作用域规则参考(http://blog.csdn.net/lis_12/article/details/52815944)作用域一节.
个人理解
lambda函数可以理解为def的低配版,lambda函数只能定义短小的函数,并且语句有限制,功能也没有def强..
code
f = lambda x:x*x
print f(10)
f = lambda x,y: x*y
print f(10,13)
f = lambda x,y:x if x>y else y #表达式语句
print f(1,2) #2
#用法示例,map()函数中使用lambda函数
a = range(10)
#如果a中的元素为奇数则加1
print map(lambda x:x +1 if x%2 else x,a)#[0, 2, 2, 4, 4, 6, 6, 8, 8, 10]