当我们想要实现一个逻辑处理,一般会考虑使用函数来实现。但是python既然是“化繁为简”,那么它当然提供了对应的方法——匿名函数lambda,能够实现简单逻辑处理的表达式
简单介绍下它的作用:
lambda 参数:表达式
举个例子:当我们想要实现a+b计算时,我们一般会封装一个方法去实现
def f(x,y):
return x +y
print(f(2,3)) #结果为:5
当然,我们也可以使用lambda来使代码更简洁:
f=lambda x,y:x+y print(f(2,3)) # 结果为:5
再结合之前随笔中提到的函数式编程中的filter、map、reduce,就能够使一些稍微复杂的代码,用一个表达式就能够处理。例如:
a ={'a_c':12,'b.c':'ac'}
想要得到:['ac', 'bc'] 即返回字典的key值,并去掉字典key中的_和.符号
拆解需求:
1、返回key
2、去掉key中的_和.符号
分析:
1、直接a.keys()key获得key
2、通过re正则模块配合split实现除去_和.
接下来就是处理:
print(list(a.keys())) #结果为:['a_c', 'b.c'] print(list(map(lambda x:re.split('_|\.',x),a.keys()))) #结果为:[['a', 'c'], ['b', 'c']]
时间有限,贴一下最终的表达式:
print(list(map(lambda x:reduce(lambda m,n:m+n,x),list(map(lambda x:re.split('_|\.',x),a.keys()))))) print(list(map(lambda x:reduce(lambda m,n:m+n,re.split('_|\.',x)),a.keys())))