当前位置: 首页 > 后端技术 > Python

python3函数中lambda-filter-map-reduce的用法

时间:2023-03-25 22:00:17 Python

lambda/filter/map/reduce面试肯定会用到这些函数。本文主要介绍这些函数的用法。1.Lambda匿名函数,用法如下:#lambda参数,参数,参数:返回的表达式 例1:f=lambdax,y:x*yprint(f(2,3))#6例2:r=(lambdax,y:x+y)(1,2)print(r)#32filterfilter(function,sequence):依次对sequence中的item执行function(item),执行结果将由True项组成的过滤器对象(可迭代)(取决于序列类型)返回。示例:defgt_5(x):returnx>5r=filter(gt_5,range(10))print(list(r))#[6,7,8,9]3mapmap(function,sequence):forsequence函数(item)中的项依次执行,执行结果组成一个map对象(iterable)返回。示例:defmysum(x,y):returnx+yr=map(mysum,range(5),range(5,10))print(list(r))#[5,7,9,11,13]4reduce在python3中,reduce已经从全局命名空间中移除,需要从functiontools中导入。reduce(function,sequence,starting_value):迭代调用序列中项目的函数。如果有starting_value,也可以作为初始值。示例:defmysum(x,y):returnx+yfromfunctoolsimportreducer=reduce(mysum,range(10))print(r)#455联合用法示例:计算1!+2!+...+10!deffactorial(n):如果n==1:返回1returnn*factorial(n-1)r=reduce(lambdax,y:x+y,map(factorial,range(1,11)))print(r)#4037913这是几个函数的用法,是不是很简单?