python中的lambda匿名函数以及针对序列的内建函数map、filter和reduce

时间:2022-05-07 20:25:22

一、python中的lambda匿名函数

格式:lambda [arguments] : [return]

例如:g = lambda x : x**2g(3) = 9

二、python中的map

map函数会根据提供的函数对指定序列做映射

格式:map(function, sequence [, sequence,...]) 返回值:sequence(与map中序列类型相同)

当参数为多个序列时,函数中参数的个数需与序列的个数相匹配。map将依次以每个序列中相同位置的元素做参数调用function函数。

当函数为None时,操作与zip相似。

例如:map(lambda x:x**2, [1,2,3,4]) 返回值:[1,4,9,16]

map(lambda x,y : x+y, [1,2,3,4] [5,6,7,8])返回值:[6,8,10,12]

map(None, [1,3,5,7] [2,4,6,8])返回值:[(1,2),(3,4),(5,6),(7,8)]

三、python中的filter

格式:filter(function or None, sequence)返回值:sequence

function是一个谓词函数,接收一个参数,返回布尔值,filter会将序列中依次作为参数传递到function,返回布尔值为真的,则被保存为一个序列返回。

例如:filter(lambda x:x&1, [1,2,3,4,5,6,7,8])返回值:[2,4,6,8]

当function为None时,则将sequence原样返回。

四、python中的reduce

格式:reduce(function, sequence [, initial])

reduce函数会对参数序列中元素进行累积

例如:reduce(lambda x,y:x+y, [2,3,4,5,6], 1)返回值:(1+2)+3)+4+5+6 = 21