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的所有数之和