lambda函数是一个可以接受任意多个参数,函数体为单表达式的函数,但是要注意参数不能是命令。
1 使用lambda函数主要优势在于:
1)适合于低频调用,且即用即销毁场景;
2)不用定义函数名字,可以作为匿名函数使用(如给filter,map等使用);
3)也可以作为回掉函数使用(如传递给某些应用做消息处理);
2 lambda函数调用方式:
方式一:
f = lambda x:x * 2
f(1)
方式二:
lambda x:x*2(1)
3 lambda函数用例
1)map函数
如实现对list每个元素加一操作,
map(lambda x:x+1, [1,2,3,4])
map(lambda x:x+1, [y*2 for y in range(5)])
2)函数选择
bool = 1 或者0 选择不同函数,字符串拼接或者原样
s = "it is a\n\tbag"
def func(bool,s):
bool and (lambda s: " ".join(s.split())) or (lambda: s:s)
解释:1)s串是一个多行字符串,\n实现了通常由三重引号做的事情
2)split函数不带参数按照空白分割;按照空白分割\n,\t,多个空格都视为空白
3)“ “.join(str)函数实现字符合并为单个空格分隔