lambda匿名函数
如果一个函数只有一行,且只需使用一次用完之后就可以弃掉,此时就可以使用匿名函数(还可以省去给函数取个名称的烦恼,当然最重要的还是使代码更加简洁)。
lambda是一个表达式,并不是一个语句
lambda常和map(),filter(),reduce()一起使用
map()函数
map(function,iterable),表示对iterable中的每个元素,都运用function这个函数,最后返回一个新的迭代对象。
#对数组中的每个元素求平方
squared = map (lambda x:x**2 ,[1,2,3,4,5])
list(squared)
filter()函数
filter(function,iterable),表示对iterable中的每个元素,都使用function判断,并返回True或者False,最后将返回True的元素组成一个新的可迭代对象返回。
#返回数组中的偶数
l = [1,2,3,4,5]
new_list = filter(lambda x:x%2==0,l)
for n in new_list:
print(n)
reduce()函数
reduce(function,iterable),通常用来对一个集合做一些累积操作。
function是一个函数对象,规定它有两个参数,表示对iterable中的每个元素及上一次调用后的结果,运用function进行计算,最后返回的是一个单独的数值。其效果如:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
from functools import reduce
l = [1,2,3,4,5]
reduce(lambda x,y:x*y,l)
上述其实实现了5的阶乘
网友评论