python 函数“四剑客”的使用和介绍

python函数四剑客:lambda、map、filter和reduce。

一、lambda(匿名函数)

  1.  学习lambda要注意一下几点:

  • lambda语句被用来创建新的函数对象,并且在运行的时候返回他们;
  • python使用lambda关键字来创建匿名函数,这种函数的命名省去了def声明函数的标准步骤;
  • lambda只是一个表达式,函数体比def简单的多;
  • lambda的主体是一个表达式,而不是一个代码块,只能用有限的逻辑封装进来;
  • 像if、for、while等语句不能用于lambda中;
  • lambda函数不能共享给其他的函数调用,而def却可以;
  • lambda拥有自己的名字空间,且不能访问自由参数列表之外全局名字空间里的参数;

  2.  语法结构:  lambda [arg1 [,arg2,.....argn]]:expression

  3.     例子:用lambda实现两个元素相加或拼接,如下:

     

     上述例子同样可以用函数来实现,具体实现方法如下:

     

二、map函数

  1.  map函数使用方法:将每个字符串或者列表元素,应用某一个函数方法,返回结果列表;当seq只有一个时,将函数func作用于这个seq的每个元素上,并得到一新的seq。 

  2.  语法结构:map(function, sequence[, sequence, ...]) -> list

  3.  应用举例:单一seq

     

  4.  应用举例二:求两个数的和或拼接的结果

    

    

   5.  应用举例三:map不会处理长度不一致或类型不一致的seq

    

    

三、filter函数

  1.  使用方法:该函数可以对序列做过滤,就是说可以使用一个自定义的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果过滤,最终返回过滤的结果。

  2.  语法结构:filter(function or None, sequence) -> list, tuple, or string

  3.  应用举例:

     

四、reduce函数

  1.  使用方法:reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一
个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。

  2.  语法结构:reduce(function, sequence[, initial]) -> value

  3.  应用举例:

     

  4.  应用举例二:实现1-100的所有数之和

    

     

    


原文地址:https://www.cnblogs.com/ddpeng/p/8014602.html