成长7 - lambda,filter,map的运用
东西越来越多,虽然感觉学的有点吃力,但是还要坚持下去!拼天分是没戏了,比后天毅力,姐自认为还是很有信心的!!
1、在学完定义函数def后,又接触了个新的知识,lambda,这个简直可以替代定义函数def啊~~~用它时,不需要一堆命名,单独定义某个字符,上来直接就是你想的结果,简直是发现新大陆了!不说了,上例子!看吧,简直了!我想以后,我会抓住这个家伙不放的,超级好理解,有不有!?(悄悄告诉你,这个结果也是试了3遍才搞定的,不过总归是成功了哈,科科~~)
>>> q=lambda x: 'hello, '+ x >>> q('Michelle') 'hello, Michelle'
再来一个,算个数吧~
>>> lambda a,b: a*b <function <lambda> at 0x0000000002092E18> >>> q=lambda a,b: a*b >>> q(11,12) 132
2、过滤fliter,哈哈,这个例子有点失败,本来想过滤出文字,结果忘记str代表任意字符串,结果啥也没过滤出去
>>> list(filter(str,['michelle',666])) ['michelle', 666]
再来一个吧,过滤出小于5的数字
>>> list(filter(lambda q:q<5,range(10))) [0, 1, 2, 3, 4]
再来~过滤出小于10的基数,!=就是不等于的意思,以下的逻辑就是不能被2整除的意思~
>>> list(filter(lambda p:p%2!=0,range(10))) [1, 3, 5, 7, 9]
3、map是映射的意思,说白了就是你定义个函数,再把这个命令作用在一个列表中,上例子!逻辑就是把10以内的数都乘5
>>> list(map(lambda w:w*5, range(10))) [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
再来个两个列表运算的,走你!
>>> list(map(lambda w,z:w+z,[1,2,3,4],[5,6,7,8])) [6, 8, 10, 12]
今天就到这里吧,哈哈,给自己鼓劲儿!坚持就是胜利!很喜欢一句话‘要一直努力,才能看起来毫不费力!’