您的位置:首页 > 编程语言 > Python开发

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

2015-05-21 22:57 1151 查看
一、python中的lambda匿名函数

格式:lambda [arguments] : [return]

例如:g = lambda x : x**2
g(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: