python中匿名函数(imooc)

高阶函数可以接受函数做参数,有时候,我们不需要显示地定义函数,直接传入匿名函数更方便。

在python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x) = x^2,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

map(lambad x:x*x,[1,2,3,4,5,6,7,8,9])

[1, 4, 9, 16, 25, 36, 49, 64, 81]

lambda x:x*x等价于

def f(x):

 return x*x

关键词lambda表示匿名函数,冒号前面的x表示函数参数

匿名函数,只能有一个表达式,不写return,返回值就是该表达式的结果

sorted([1,3,9,5,0],lambda x,y:-cmp(x,y))

[9,5,3,1,0]

返回函数的时候,也可以返回匿名函数:

myabs = lambda x : -x if x<0 else x

myabs(-1)  ==1

myabs(1)    ==1

利用匿名函数简化以下代码:

def is_not_empty(s):
    return s and len(s.strip()) > 0
filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])

代码如下:

def is_not_empty(s):
    return s and len(s.strip()) > 0
filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值