[ Python ] 匿名函数和高阶函数

1. 匿名函数

lambda:一个语法,三个特性,四个用法

语法:

lambda argument_list: expression

argument_list 和 expression 由用户自定义

(1)argument_list 是参数列表。它的结构与 python 中函数的参数列表是一样的。

 

[ Python ] 匿名函数和高阶函数

(2)expression 是一个关于参数的表达式。表达式中出现的参数需要在 argument_list 中定义,并且表达式只能是单行的,如下:

 

[ Python ] 匿名函数和高阶函数

lambda argument_list: expression 表示的是一个函数,一个匿名函数。

三个特性:

(1)lambda 函数是匿名的;所谓匿名函数,通俗地说就是没有名字的函数。lambda 函数没有名字;

(2)lambda 函数有输入和输出;输入是传入到参数列表 argument_list 的值,输出是根据表达式 expression 计算得到的值;

(3)lambda 函数一般功能简单,单行 expression 决定了 lambda 函数不可能完成复杂的逻辑,只能完成非常简单的功能

四个用法:

(1)将 lambda 函数赋值给一个变量,通过这个变量间接调用该 lambda 函数

(2)将 lambda 函数作为其他函数的返回值,返回给调用者

(3)将 lambda 函数作为参数传递给其他函数

(4)将lambda 函数赋值给其他函数,从而将其他函数用该 lambda 函数替换

python编程方式

python 编程方式分为:

(1)面向过程

(2)函数式编程

不用变量保存状态,不修改变量

函数即变量

(3)面向对象

2. 高阶函数

(1)函数接收参数是一个函数名

(2)返回值中包含函数

把函数作为参数传入,这样的函数称为高阶函数

(1)map

map函数接收两个参数,一个是函数,一个是 iterable。map将传入的函数依次作用到每个元素,并把结果作为新的 iterator 返回

 

[ Python ] 匿名函数和高阶函数

(2)filter

filter接收一个函数和一个序列。filter() 把传入的函数依次作用于每个元素,然后根据返回值是 True 和 False 决定保留还是丢弃该元素。

 

[ Python ] 匿名函数和高阶函数

(3)reduce

reduce 把一个函数作用于一个序列上,这个函数必须接收两个参数,reduce把结果继续和下一个元素做累计计算