lambda表达式及3个内置函数

来源:互联网 发布:2013nba东部决赛数据 编辑:程序博客网 时间:2024/06/01 22:08


>>> g= lambda x,y : 2*x+y

>>> g(1,3)
5


#过滤器,过滤所有为0或者false的值
filter()函数接收一个函数 f 和一个list(可迭代的序列)


filter(None,[1,0,False,True])
>>> list(filter(None,[1,0,False,True]))
[1, True]


>>> list(filter(lambda x : x % 2 , range(10)))
[1, 3, 5, 7, 9]


#映射
map 函数接收一个函数 f 和一个list(可迭代的序列),将序列的每一个元素作为函数的参数进行运算加工,直到可迭代序列的每个元素都加工完毕,返回所有加工后的元素构成的新序列。


>>> list(map(lambda x : x * 2 , range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]


#化简
reduce (func, seq[, init()])
reduce()函数即为化简函数,它的执行过程为:每一次迭代,都将上一次的迭代结果(注:第一次为init元素,如果没有指定init则为seq的第一个元素)与下一个元素一同传入二元func函数中去执行。在reduce()函数中,init是可选的,如果指定,则作为第一次迭代的第一个元素使用,如果没有指定,就取seq中的第一个元素。
传给reduce中的函数 func必须是一个二元操作函数
在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引
入:
>>> from functools import reduce
>>> lst = [1,2,3,4,5]
>>> print(reduce(lambda x,y:x+y,lst))
15