当前位置: 首页 > 科技观察

Python函数式编程大家应该都知道

时间:2023-03-13 14:32:56 科技观察

函数式编程(FunctionalProgramming)或者函数式编程是一种编程范式。它将计算机操作视为数学函数,并避免使用程序状态和变量对象。以上只是函数式编程的一个简单概念,我们只需简单了解一下即可。在Python中,函数式编程主要是几个函数的使用:lambda()、map()、reduce()、filter()等。1.lambda函数lambda函数又变成了匿名函数。一个lambda函数只能有一个表达式,不需要写return来返回函数的值。当然,匿名函数也是函数对象,匿名函数也可以赋值给变量。您还可以返回一个匿名函数作为返回值。可以看出变量f是一个lambda函数类型,需要使用f()来调用该函数。2.map函数map函数接收两个参数,一个是函数,一个是Interable(可迭代序列)。map函数依次将函数应用于序列的每个元素,并将结果作为新的Interable返回。看一个例子:一个简单的列表推导,给列表a的每个元素加2,使用map函数可以写成:由于map函数返回的是惰性序列,需要通过list()等调用功能。上面的代码虽然看起来比直接写for循环要复杂一些,但是当数据量很大的时候,Python的for的效率并不是很高,map的效率可以接近C语言。同时,代码也简单很多,简直就是X神器。再一个小例子,把列表中的元素转成字符串,一个命令3.reduce函数有点类似于map,只不过map是用来一个一个遍历的,而reduce函数是用来递归计算的。一个简单的序列求和依次对列表a的每个元素求和,再看一个自制的int()函数的例子。这就是Python内置函数int的用法。我们还可以按如下方式实现reduce和map函数。首先使用map函数迭代23465个字符串的列表,然后通过reduce函数递归地将列表的每个元素应用到lambda函数。4.过滤函数也接收一个函数和一个序列。filter()依次对每个元素应用传入函数,然后根据返回值是True还是False来决定保留还是丢弃该元素。综上所述,使用这些函数不仅可以让我们的代码更加简洁,而且在数据量大或者计算密集的情况下也能大大提高效率。