Python学习:匿名函数

2021-11-06  本文已影响0人  倔犟的贝壳

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的阶乘

上一篇 下一篇

猜你喜欢

热点阅读