Go for it!
1. Python lambda
之前没怎么看过Python的lambda(匿名函数)的用法,最近抽空记一下。
lambda本质是一个可以返回单个值的函数(输入参数则不限)。 其函数形式为:
lambda <input1>, <input2>, <input3>:<expression>
冒号之前是输入的参数,冒号之后是返回的表达式。比如 f ( x , y , z ) = x + y + z f(x, y, z) = x+y+z f(x,y,z)=x+y+z的匿名函数表达式为:
lambda x, y, z: x+y+z
以此类推。
2. map&reduce&filter
map,reduce,filter是python内置的三个函数,他们的各个功能如下(个人理解):
- map:将迭代器(通常是list)中的所有元素分别进行同一个函数操作(返回一个迭代器,可转为list);
- reduce:将迭代器(通常是list)中的所有元素分别进行累积操作(比如求和,求积)(返回一个值);
- filter:将迭代器(通常是list)中符合要求的元素保留(返回一个迭代器,可转为list)。
上面三个方法都可以结合lambda使用,比如,当我们想计算列表中所有元素的平方:
l = [1,2,3,4,5]
new_l = map(lambda x:x**2, l)
比如,当我们想计算列表中所有元素的和:
l = [1,2,3,4,5]
new_l = reduce(lambda x, y:x+y, l)
比如,当我们想得到列表中大于3的元素:
l = [1,2,3,4,5]
new_l = filter(lambda x:x>3, l)