【原创】python lambda表达式


对于lambda先看一下《 python filter函数》一文提到的函数:
>>> li=('Boy','41','Tim','QQ','1125891')
>>> filter(fu,li)
('41', '1125891')
可以用lambd一句话表示
>>> li=['Boy','41','Tim','QQ','1125891']
>>> filter(lambda x:x.isdigit(),li)
['41', '1125891']
>>> li=('Boy','41','Tim','QQ','1125891')
>>> filter(lambda x:x.isdigit(),li)
('41', '1125891')
>>> li = 'boy-41,tim!qq-112'
>>> filter(fu,li)
'41112'
可以看到跟 python filter函数 》一文的结果都一模一样。
看看lambda和def函数的区别:
  • python lambda 和 def 都会创建一个函数对象。def会把函数对象赋给一个变量;lambda却不会
  • python lambda 只是一个表达式,而def则是一个语句
>>> filter(lambda x:x%2!=0,range(1,11))
[1, 3, 5, 7, 9]
>>>
#这是求1-11之间的奇数

filter(lambda x:len(x)!=0,'hello')
filter(lambda x:len(x)==0,'hello')
猜猜上面两条语句返回什么值?
>>> filter(lambda x:len(x)!=0,'hello')
'hello'
>>> filter(lambda x:len(x)==0,'hello')
''
如你所见,lambda x:len(x)!=0 应该这样表达,def fun(x):if len(x)!=0 ,参数x传入,进行:后面的判断,如果为真返回参数x。

原创所有,转载请附明本文超链接地址以及作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值