python的lambda匿名函数

1、 lambda匿名函数的基本介绍

匿名函数的结构如下:

lambda arg1, arg2,... argN : expression

即:匿名函数的关键字是 lambda,之后是一系列的参数,然后用冒号隔开,最后则是由这些参数组成的表达式.
例如:

f=lambda x: x + 1

这个匿名函数有一个参数x,表达式是x+1。
我们可以这么调用:

print(f(3))

结果为:

<class 'function'>
4

所以,我们看到,匿名函数lambda和常规函数一样,返回的都是一个函数对象(function object),并且用户也几乎一样。但是它和常规函数还是有区别的:
1、lambda是一个表达式(expression),并不是一个语句。这里要说一下两者的区别,所谓表达式,就好比数学上的公式,比如x-1,x+1等;而语句,则是为了完成某些功能,比如赋值语句x=1完成了赋值;所以,lambda函数可以用在一些常规函数def不能用的地方,比如列表内部

    l_4= [(lambda x: x+1)(x) for x in range(10)]
    print(l_4)

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2、lambda匿名函数的主体只有一行简单表达式,并不能扩展成一个多行的代码块。这也就是说,lambda匿名函数主要是处理简单任务。

严格来说,python中的匿名函数都可以被替换成等价的其他形式,比如常规函数,所以在python程序中,匿名函数并不是必须的,但是匿名函数在一定情况下是可以简化代码的。

2、 lambda匿名函数的简单应用

2.1 map函数

map(function, iterable) 函数,表示,对 iterable 中的每个元素,都运用 function 这个函数,最后返回一个新的可遍历的对象。
比如:

l_1 = [1, 2, 3]
l_2 = map(lambda x: x + 1, l_1)
print(type(l_2))
for i in l_2:
print(i)

输出:

<class 'map'>
2
3
4

这里我们鼓励使用map函数,因为 map() 函数直接由 C 语言写的,运行时不需要通过 Python 解释器间接调用,并且内部做了诸多优化,所以运行速度最快。

2.2 filter函数

filter(function, iterable) 函数,它和上面说的map 函数类似,function 同样表示一个函数对象。filter() 函数表示对 iterable 中的每个元素,都使用 function 判断,并返回 True 或者 False,最后将返回 True 的元素组成一个新的可遍历的集合。
例如:

l_1 = [1, 2, 3]
print(type(l_3))    
for i in l_3:
   print(i)

输出:

<class 'filter'>
3

2.3 reduce函数

reduce(function, iterable) 函数,主要用来对一个集合做一些累积操作。主要要使用reduce函数,需要做import引入。
例如:

from functools import reduce
l_1 = [1, 2, 3]
s = reduce(lambda x, y: x + y, l_1)
print(type(s))

输出:

<class 'int'>
6

这里返回了这个列表累积的结果。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值