ifnull 不是可以识别的 内置函数名称。_小猿圈python之高阶函数lambda、map和reduce用法...

本文介绍了Python中的三个高阶函数:lambda、map和reduce。lambda函数是匿名函数,用于快速定义简单功能,而无需定义常规函数。map函数接受一个函数和一个可迭代对象,将函数应用于可迭代对象的每个元素并返回新的可迭代结果。reduce函数在Python 3.x中移至functools模块,它通过应用函数并累积结果来处理序列。文章还提到了这些函数在实际编程中的应用场景和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda、map和reduce高阶函数的用法。

321e70cb12b2b8f5292be280f1abf355.png

1、lambda函数

lambda是匿名函数,lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值(相当于return)。

lambda语句构建的其实是一个函数对象,感受一下 lambda 匿名函数和普通函数的区别:

--普通函数:

1 def f(i): # 用户自定义返回平方数

2 return i*i

3 print(f(2))

--匿名函数

g = lambda x : x*x # lambda 匿名函数

print(g(2))

看出来区别了吗? lambda 函数和普通的函数相比,就是省去了函数名称,同时这样的匿名函数,不能共享在别的地方调用,也有很多别的方法能够代替lambda,那lambda函数有什么优点呢?

1. 省去定义函数的过程,快速定义单行的最小函数,让代码更加精简

2. 不需要复用的函数,无须定义函数名称

3. 和 filter map reduce 结合使用,更优雅

lambda 函数可包含多个参数,例如:

1 def f(x,y):

2 return x+y

3 print(f(1,4))

4 g = lambda x,y : x+y

5 print(g(1,4))

2、map函数

map()函数接收两个参数,一个是函数,一个是可迭代对象(Iterable),map将传入的函数依次作用到序列的每个元素,并把结果作为新的可迭代对象返回。

实例:

L=[1,2,3,4]

def pow2(x):

return x*x

list(map(pow2,L))

运行结果:[1,4,9,16]

map和lambda匿名函数一同使用:

list(map(lambda x:x**2,[1,2,3,4,5]))#使用lambda匿名函数

3、reduce函数

reduce 函数在 3.x 版本不是内建函数了,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里,用的话要 先引入

from functools import reduce

reduce 函数中的function参数是一个有两个参数的函数,reduce依次从 sequence 中取一个元素,和上一次调用 function 的结果做参数再次调用function。

例如:

1

2 from functools import reduce # 3.x 版本须引入

3 def sum_a(x,y):

4 return x+y

5 l = [1,2,3,4,5,6]

6 l = reduce(sum_a,l)

7 print(l)

结果:21

l = [1,2,3,4,5,6]

l = reduce(lambda x,y:x+y,l) # 结合lambda

print(l)

help(reduce) # 查看 reduce 帮助

这三个个高阶函数运用的地方也很多,一般匿名函数lambda和map、filter、reduce组合用的比较多,这只是简单的用法,想要深入了解高阶函数,可以去小猿圈学习一下,alex老师讲的很透彻,小编听后做的总结,有问题可以给小编留言,我们可以探讨学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值