基本概念
lambda 为关键字。filter,map,reduce为内置函数。
lambda是实现函数的简易方法
注意不要在lambda表达式中使用 return
#常规的python函数
def pow(x):
return x**2
pow=lambda x: x**2
参考:https://www.cnblogs.com/yufeihlf/p/6179982.html
lambda:https://blog.csdn.net/zjuxsl/article/details/79437563
filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。过滤不符合的条件元素。
filter(function or None, sequence) -> list, tuple, or string:入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串。
例子:
filter(lambda x:x if x%2==0 else False,range(110))
返回的是满足条件即返回True的值,返回对象。
map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。
map(function, sequence[, sequence, ...]) -> list:入参是为函数和列表/元组/字符串,返回值为function(item)列表。
例子:
map(lambda x:x**2,[1,2,3,4])
返回经过function处理后的数据。[1,4,9,16],返回的是一个对象
from functools import reduce:python3中reduce()已移到functools中
reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。starting_value可选,初始参数
reduce(function, sequence[, initial]) -> value:入参是为函数和列表/元组/字符串和初始值,返回值为数值。
from functools import reduce
reduce(lambda x,y:x**y,[1,2,3,4],5)
#59604644775390625
设定初始值为5,一开始迭代5^1,然后再拿结果(5^1)^2……如此类推,最后结果是5^(1*2*3*4)=59604644775390625