鲁迅不曾说过:如果别人看不见你的电脑屏幕,那么只要你在打字他们就会觉得你在努力学习。
lambda介绍
如果⼀个函数有⼀个返回值,并且只有⼀句代码,可以使⽤ lambda简化。
语法:lambda 参数列表 : 表达式
# 函数
def fn1():
return 200
print(fn1)
print(fn1())
# lambda表达式
fn2 = lambda: 100
print(fn2)
print(fn2())
输出:
<function fn1 at 0x00000265EB79C268>
200
<function <lambda> at 0x00000265EB947B70>
100
注:直接打印lambda表达式,输出的是此lambda的内存地址
带判断的lambda
print((lambda a, b: a if a > b else b)(1000, 500))
输出:1000
高阶函数介绍
把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。函数式编程就是指这种⾼度抽象的编程范式。
示例:⼀个函数完成计算任意两个数字的绝对值之和。(在Python中, abs() 函数可以完成对数字求绝对值计算)
def sum_num(a, b, f):
return f(a) + f(b)
result = sum_num(-1, 2, abs)
print(result)
输出结果:3
内置高阶函数
map()
map(func, lst),将传⼊的函数变量func作⽤到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)返回。
reduce()
reduce(func(x,y),lst),其中func必须有两个参数。每次func计算的结果继续和序列的下⼀个元素做累积计算。
filter()
filter(func, lst)函数⽤于过滤序列, 过滤掉不符合条件的元素, 返回⼀个 filter 对象。如果要转换为列表,可以使⽤ list() 来转换。