1.lambda/匿名函数
1.1 lambda 参数列表 : 表达式
lambda表达式的参数可有可⽆,函数的参数在lambda表达式中完全适⽤
lambda函数能接收任何数量的参数但只能返回⼀个表达式的值
1.2 参数
⽆参数: print((lambda: 100)())
⼀个参数:print((lambda a: a)('hello world'))
默认参数:print((lambda a, b, c=100: a + b + c)(10, 20))
不定长参数:
*args print((lambda *args: args)(10, 20, 30))
**kwargs print((lambda **kwargs: kwargs)(name='python', age=20))
1.3 应用
带判断的lambda print((lambda a, b: a if a > b else b)(1000, 500))
2.高阶函数
概念:把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。
函数式编程就是指这种⾼度抽象的编程范式
案例:def sum_num(a, b, f):
return f(a) + f(b)
result = sum_num(-1, 2, abs)
print(result)
内置高阶函数:
map() map(func, lst),将传⼊的函数变量func作⽤到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)返回
reduce() reduce(func(x,y), lst),其中func必须有两个参数。每次func计算的结果继续和序列的下⼀个元素做累加计算
filter() filter(func, lst)函数⽤于过滤序列, 过滤掉不符合条件的元素, 返回⼀个 filter 对象。如果要转换为列表,可以使⽤ list() 来转换