一切都是函数,不保留中间状态。
从函数输入输出的角度看问题,很像之前的面向过程。
函数可以作为参数和返回值。
1)代码更简单了。
2)数据集,操作,返回值都放到了一起。
3)你在读代码的时候,没有了循环体,于是就可以少了些临时变量,以及变量倒来倒去逻辑。
4)你的代码变成了在描述你要干什么,而不是怎么去干。
对一个数据做处理:
name = map(lambda x: x + 1, [1,2,3])[2,3,4]
每次对两个数据进行处理:
name = reduce(lambda x, y: x + y, [1,2,3])6
reduce先计算1+2得到3,再计算3+3得到6。
过滤等于true的list item
print filter(lambda x: x % 3 == 0, foo)[18, 9, 24, 12, 27]
计算平均值:
number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8]sum = filter(lambda x: x>0, number)average = reduce(lambda x,y: x+y, sum)/len(sum)print average
联系客服