python函数对象

适用于python 2.x版本

1. lambda函数

1 func = lambda x, y : x + y
2 print func(2, 4)

lambda生成一个函数对象,参数是x,y, 返回x+y。


 2. map() 函数

1 rtn = map((lambda x: x*3), [1, 2, 3, 4, 5, 6])
2 print rtn

map是python内置函数,第一个参数是函数,第二个参数是一个序列。第一个函数作用与序列的每一个元素,并将结果放在序列rtn里。 


 3. reduce() 函数

rtn = reduce((lambda x, y : x + y), [1, 3, 5, 7, 9])
print rtn

reduce也是python内置函数,同样有两个参数,第一个参数是函数,第二个是序列。先将序列的前两个元素作为lambda函数的两个参数,返回值作为lambda的第一参数,序列的下一个元素(也就是第3个元素)作为lambda的第二个参数,依次作用于整个序列。


 4. filter() 函数

def isOdd(n):
    if n % 2 == 0:
        return False
    else:
        return True

rtn = filter(isOdd, [1, 2, 3, 4, 5, 6])
print rtn
type(rtn)

filter函数同样是python内置函数。filter函数的第一个参数是一个函数,用来筛选数据的函数;第二个参数是待筛选的数据。

isOdd判断是不是基数,是返回True, 不是返回False。filter的时候根据isOdd函数返回的结果来决定要不要把这个数保留下来,True的话保留下来。这样就起到了筛选的作用。


 总结:

  lambda 函数

  map() 函数

  reduce() 函数

  filter() 函数


原文地址:https://www.cnblogs.com/Wolfanature/p/6045171.html