python中的一些函数

来源:互联网 发布:积家 知乎 编辑:程序博客网 时间:2024/05/22 15:33

一、lambda函数
Lambda函数,是一个匿名函数,创建语法: lambda parameters:express

parameters:可选,如果提供,通常是逗号分隔的变量表达式形式,即位置参数。

expression:不能包含分支或循环(但允许条件表达式),也不能包含return(或yield)函数。如果为元组,则应用圆括号将其包含起来。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:
示例如下:

>>> def ds(x):    return 2*x+1>>> ds(5)11>>> lambda x:2*x+1<function <lambda> at 0x0000000003773378>>>> g=lambda x : 2*x+1>>> g(5)11>>> def add(x,y):    return x + y>>> add(3,4)7>>> lambda x, y : x + y<function <lambda> at 0x0000000003773488>>>> g=lambda x,y:x+y>>> g(4,5)9>>

同样,也可以把匿名函数作为返回值返回,比如:

def build(x, y):    return lambda: x * x + y * y

二、filter函数
filter()这个Python里的内置函数,它的作用就是用来过滤序列,可以把它理解成筛子的作用。

函数形式:filter(function函数,sequence序列)

filter()函数的原理是:对sequence序列中的每个元素item,依次执行function操作,返回True或False,filter()根据判断结果自动过滤掉不符合条件的元素,筛选出符合条件的元素,并以列表的形式返回。
eg:

>>> temp=range(10)>>> def odd(x):    return x % 2>>> list(filter(odd,temp))输出结果为:[1, 3, 5, 7, 9]

上面的式子如果使用lambda函数将是:

>>> list(filter(lambda x : x % 2,range(10)))输出结果同样为:[1, 3, 5, 7, 9]

三、map函数