>>> 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'
看看lambda和def函数的区别:
>>> filter(lambda x:x%2!=0,range(1,11))
- python lambda 和 def 都会创建一个函数对象。def会把函数对象赋给一个变量;lambda却不会
- python lambda 只是一个表达式,而def则是一个语句
[1, 3, 5, 7, 9]
>>>
#这是求1-11之间的奇数
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。
原创所有,转载请附明本文超链接地址以及作者