转载:新手学习用,请博主原谅。(lambda,map,filter,reduce函数的用法)

1. lambda()匿名函数

a = lambda x: x*x
print a(2)
#输出结果为:
#4
``
关键字 lambda 表示匿名函数,冒号前面的 x 表示函数参数 
匿名函数有个限制,只能有一个表达式,不用写 return,返回值就是该表达式的结果。 
也可以把匿名函数赋值给一个返回值:

def fun(x,y):
return lambda:x*y

  使用lambda()函数可以简化代码,如果使用def定义函数,每次调用的时候还需要回头找到该函数,如果这个函数程序运行中仅用到一两次,使用lambda()代替的话可以大大简化程序。

**2. filter()函数**
  以下是Python中对filter()函数的介绍:

filter(...)
    filter(function or None, sequence) -> list, tuple, or string

    Return those items of sequence for which function(item) is true.  If
    function is None, return the items that are true.  If sequence is a tuple
    or string, return the same type, else return a list.

filter()函数的参数为一个函数和一个序列,把传入的函数依次作用于每个元素,然后根据返回值是True还是False判断是保留还是丢弃该元素。filter()函数返回的是一个迭代器Iterator。举个例子:

删掉一个 list 中的偶数,只保留奇数,可以写为:

def is_odd(n):
return n % 2 == 1
list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))
#输出结果为:
#>>>[1,3,5,9]

利用 lambda 表达式,也可以写成:

list(filter(lambda x:n%2==1, [1, 2, 4, 5, 6, 9, 10, 15])))
#>>>1



**3. map()函数**
  map(函数名, Iterable),map()函数将传入的函数依次作用到序列的每个元素,并把结果作为新的iterator返回。 
例:有一个函数f(x)=x2f(x)=x2,要把该函数作用在一个list=[1,2,3,4,5,6,7,8]上,可用map()函数实现如下:

def fun(x):
return x*x
list(map(fun,[1,2,3,4,5,6,7,8]))
#输出结果为:
#>>>[1, 4, 9, 16, 25, 36, 49, 64]


使用lambda()函数实现如下:

list(map(lambda x: x*x,[1,2,3,4,5,6,7,8]))
#>>>1



  利用map()函数将[‘lily’,’JACK’,’mAriN’]这三个名字规范化输出,即除了首字母大写,其他均小写。

def normalize(name):
return name[0].upper+name[1:].lower
Name = [‘lily’,‘JACK’,‘mAriN’]
print (list(map(normalize,Name)))
#输出结果为:
#>>>[‘Lily’,‘Jack’,‘Marin’]



--------------------- 
作者:Easy_ray 
来源:CSDN 
原文:https://blog.csdn.net/c369624808/article/details/78988930?utm_source=copy 
版权声明:本文为博主原创文章,转载请附上博文链接!主原创文章,未经博主允许不得转载。	https://blog.csdn.net/c369624808/article/details/78988930

猜你喜欢

转载自blog.csdn.net/weixin_43313213/article/details/83020439