0


python之lambda-filter-map-reduce作用

lambda匿名函数,让函数更简洁,有时候妙用无穷;

使用方法:lambda 后面直接跟变量,变脸后面是冒号,冒号后面是表达式,表达式的计算结果就是本函数的返回值

注意:虽然 lambda 函数可以接收任意多的参数并且返回单个表达式的值,但是 lambda 函数不能包含命令且包含的表达式不能超过一个。如果你需要更多复杂的东西,你应该去定义一个函数。

eg:

** filter:过滤器**

eg:

numbers =range(-5,5)
print(list(filter(lambda x:x>0,numbers)))

输出结果:【1,2,3,4】

和以下代码等价

[x for x in numbers if x > 0]

** map:映射,**map 是 Python 的一个内置函数,它的基本格式是:map(func, seq)

对于 map 要主要理解以下几个点就好了:

1.对可迭代的对象中的每一个元素,依次使用 fun 的方法(其实本质上就是一个 for 循环)。

2.将所有的结果返回一个 map 对象,这个对象是个迭代器。

eg:

list1 = [1,2,3,4]
list2 = [5,6,7,8]
list3=list(map(lambda x,y: x + y,list1,list2))
print(list3)

输出结果:[6, 8, 10, 12]

reduce:函数作用于序列,reduce 函数的第一个参数是一个函数,第二个参数是序列类型的对象,将函数按照从左到右的顺序作用在序列上。

eg:

from functools import reduce
a=reduce(lambda x,y:x+y,[1,2,3,4,5])
print(a)

输出结果:15


本文转载自: https://blog.csdn.net/Darin2017/article/details/121626434
版权归原作者 Darin2017 所有, 如有侵权,请联系我们删除。

“python之lambda-filter-map-reduce作用”的评论:

还没有评论