Python函数-匿名函数

函数的定义

匿名函数:定义函数的过程中,没有给定名称的函数就叫做匿名函数;Python中使用lambda表达式来创建匿名函数。

lambda 来创建匿名函数规则。

 ●lambda只是一个表达式,函数体比def简单很多。

 ●lambda的主体是一个表达式,而不是一个代码块,所以不能写太多的逻辑进去。

 ●lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。

 ●lambda定义的函数的返回值就是表达式的返回值,不需要return语句块

 ●lambda表达式的主要应用场景就是赋值给变量、作为参数传入其它函数

lambda匿名函数的表达式规则是:lambda 参数列表: 表达式

匿名函数与定义函数的对比:

演示匿名函数

lambda表达式也可用于def函数中:

另外一种方法

另外一种方法

利用lambda表达式实现filter(),reduce(),map()

filter 函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回

True或 False,最后将返回 True的元素放到新列表中。

语法

filter(function ,iterable)

function -- 判断函数。

iterable -- 可迭代对象。

案例:利用filter()选择奇数

利用lambda

map函数

map函数会根据提供的函数对指定序列做批量处理。

map函数的定义:

map(function,seq) -> list

通过定义可以看到,这个函数的第一个参数是一个函数,第二个参数是一个序列。function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。

注:Python 2.x 返回列表。Python 3.x 返回迭代器。

案例

案例升级:

利用lambda表达式

reduce函数

reduce函数会对参数序列中元素进行总体计算。

reduce函数的定义:

reduce(function,seq[, arg])-> value

function参数是一个有两个参数的函数,reduce依次从seq中取一个元素,和上一次调用function的结果做参数再次调用function。第一次调用function时,如果提供arg参数,会以seq中的第一个元素和arg作为参数调用function,否则会以序列seq中的前两个元素做参数调用function。

function -- 函数,有两个参数

seq -- 可迭代对象

arg -- 可选,初始参数

在使用reduce函数之前,需从functools中导入reduce函数

from functools import reduce

库的种类:第三方(类似于numpy,)、自定义(py文件)、标准

利用lambda表达式

你可能感兴趣的:(Python函数-匿名函数)