今天学习了python中的四种高级函数lambda,map,reduce,filter。常用于数据分析当中。
lambda用于定义一些简单的函数,但是太复杂的无法处理。使用lambda不需要定义函数名称,直接调用函数就可以,如果是def的话需要先def函数名称再return函数计算公式。
map是可以一次性将函数映射到序列中所有元素,实现一次性计算。
reduce函数的使用在python3里需要调用模块才能直接使用。reduce函数会先计算序列前两个元素的结果,用该结果继续和下一个元素进行运算,循环到最后一个元素。
filter函数是用来过滤数据,留下返回值是True的元素。
#lambda函数——匿名函数,作用是定义函数,一般是简单点的函数,相当于define #不需要def来定义,不需要有具体函数名称 #语法结构是 lambda par1,par2,...,parn:expression g=lambda x:x**2#相当于def g(x)=x**2 print(g(2)) f=lambda x,y,z:x+y+z print(f(1,2,3)) h=lambda x:"A" if x==1 else "B" print(h(1)) #map函数,将函数映射到或者说使用到序列中每一个元素,并生成一个新序列 #函数结构 map(function,sequence) i=[1,2,3,4] def f(x): return x**2 s=list(map(f,i)) print(s)#[1, 4, 9, 16] #lambda和map的结合 s=list(map(lambda x:x**3,i)) print(s)#[1, 8, 27, 64] #reduce函数,python3中需要引入模块才能使用 #函数结构 reduce(function,sequence) from functools import reduce def f(x,y): return x+y i=range(1,11) s=reduce(f,i)#求1-10的和 print(s) i2=range(1,101,2) r=reduce(f,i2) print(r)#求1-100的奇数和 i3=["我","爱","你"] e=reduce(f,i3) print(e)#字段拼接 #filter函数,过滤掉不符合条件的元素,返回由符合条件的因素构成的序列 #函数结构 filter(function,sequence) #找出偶数 s=list(filter(lambda x:x%2==0,range(101))) print(s) i=[1,2,3,3.234,23.43,"3214","fid"] #找出整数[1, 2, 3] #用lambda r=list(filter(lambda x: 1 if isinstance(x,int) else 0,i)) print(r)#[1, 2, 3]留下Ture的结果 #用def def int_f(x): if isinstance(x,int): return True else: return False r=list(filter(int_f,i)) print(r)#[1, 2, 3]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)