浅谈浅谈Python 函数式编程函数式编程
匿名函数匿名函数lambda表达式表达式
什么是匿名函数?什么是匿名函数?
匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻
辑。lambda 本质上是一个函数对象,可以将其赋值给另一个变量,再由该变量来调用函数,也可以直接使用。
#平时,我们是先定义函数,再进行调用
def power(x):
return x ** 2
print(power(2))
#使用lambda表达式的时候,我们可以这样操作
power = lambda x : x ** 2
print(power(2))
#觉得太麻烦,还可以这样调用
print((lambda x: 2 * x)(8))
lambda表达式的基本格式:lambda 入参 : 表达式
#入参可以有多个,比如
power = lambda x, n: x ** n
print(power(2, 3))
lambda 表达式的使用场景表达式的使用场景
一般适用于创建一些临时性的,小巧的函数。比如上面的 power函数,我们当然可以使用 def 来定义,但使用 lambda 来创建
会显得很简洁,尤其是在高阶函数的使用中。
定义一个函数,传入一个list,将list每个元素的值加1
def add(l = []):
return [x +1 for x in l]
print(add([1,2,3]))
上面的函数改成将所有元素的值加2
可能大家会说,这还不简单,直接把return里的1改成2就行了。但是真的行吗?如果函数被多个地方使用,而其他地方并不想
加2,怎么办?
这好办,把变得那部分抽出来,让调用者自己传
def add(func,l = []):
return [func(x) for x in l]
def add1(x):
return x+1
def add2(x):
return x+2
print(add(add1,[1,2,3]))
print(add(add2,[1,2,3]))
一个简简单单的问题,一定要用这么多代码实现?
def add(func,l = []):
return [func(x) for x in l]
print(add(lambda x:x+1,[1,2,3]))
print(add(lambda x:x+2,[1,2,3]))
map函数函数
map的基本格式的基本格式