lambda表达式:匿名函数,它与显式函数def不一样,实质上可以当做一个表达式。
它是为处理简单的函数而出现的,其参数可选,返回对象,可以被def嵌套使用。
1. 作为表达式
# 1. 作为表达式 add_func = lambda x,y : x+y # x,y相当于传参,x+y属于函数体,返回的值就是x+y的结果 aa = add_func(1,2) print(aa) #输出为3 bb = add_func(‘who are ‘,‘you?‘) print(bb) #输出:who are you?
2. 作为函数的嵌套部分
# 2. 函数嵌套得到表达式 def get_line(a,b): return lambda x : a*x+b y = get_line(1,1) #此时y是一个函数 y=ax+b print(y(3)) # 输出为4
3. 不带参数的函数
ss = lambda:‘where are you come from?‘ print(ss()) #不带参数调用,输出为:where are you come from?
4. 用于选择函数
list_func = [lambda x:x+10, lambda y:y+100, lambda z:z+1000] #其中的每个元素都是一个小函数,可以随时调用 ff_result = [] for ff in list_func: ff_result.append(ff(1000)) print(ff_result) #输出:[1010, 1100, 2000]
特点:
# 1. 简洁
# 2. 在不复杂的函数中,lambda能提高性能
# 3. lambda拥有自己的命名空间,除了自己的参数之外,不能访问其他参数
# 更pythonic的用法在 map、reduce、filter、sorted等函数式编程的函数中,因为它们都支持函数作为参数
参考:
https://blog.csdn.net/qq_39226755/article/details/86773171
https://www.cnblogs.com/hf8051/p/8085424.html
原文:https://www.cnblogs.com/qi-yuan-008/p/12075151.html