lambda函数是Python的内置函数,其功能主要是实现匿名函数的目的。与此同时,Java8也增加了对lambda的支持
为何要用匿名函数?
函数主要是用来帮助处理数据,假如数据的处理比较麻烦,影响主程序流程,我们声明一个函数来使主流程清晰明了。但有时候数据仅仅需要一些浅加工,比如数据相加或者相乘等简单处理,此时再去声明函数就显得臃肿,这时候匿名函数就派上用场了。
匿名函数的优点就是简洁、轻量化。匿名函数无需起名,用完即可被回收,节约资源。
形式:(单参数)lambda x:x*2,(多参数)lambda x,y : x+y
其中,冒号左边的x、y为参数,冒号右边的为函数体
用法:
>>> f = lambda x,y : x+y
>>> f(3,2)
5
map函数,Python内置,主要用于数据映射,具体点是列表数据映射
需求场景:
现在有列表[1,2,3,4,5],如果想要将列表中的每个元素都平方,按传统方法,需要写个循环,将镁元素平方后传给新的列表返回,不够简洁,用map函数直接就可搞定
形式: map(处理函数, 列表1,列表2,...)
map方法会将每个列表的元素带入到处理函数运算,并返回map object对象,此对象可迭代,也可以用list()转为列表
>>> def add(x,y):
return x + y
>>> results = map(add,[1,2,3],[5,6,7])
>>> type(results)
<class 'map'>
>>> print(list(results))
[6, 8, 10]
map与lambda一起用可实现上述效果:
>>> results = map(lambda x,y:x + y,[1,2,3],[5,6,7])
>>> print(lit(results))
[6, 8, 10]
简洁优雅即是王道~