python--函数对象

1.lambda函数:

用法:定义函数

func=lambda x,y:x+y

print func(3,4)

等同于:

def func(x,y):

      return x+y

2.函数作为参数传递:

   def test(f,a,b):

         print f(a,b)

  test(func,3,5)

解释:test的第一个参数f就是一个函数对象。将func传递给f,test中的f()拥有了func()的功能

test(lambda x,y:x+y),6,9),提高函数的灵活性

3.map函数

  re=map(lamdba x:x+9),[1,2,3,4])

map函数包括2各参数,功能是将函数对象作用于表的每一个元素,每次得到的结果存储在表re中

如果函数对象有多个参数,可用下面的方式:

re=map((lambda x,y:x+y),[1,2,3],[2,3,4])

4.filter()函数

filter函数第一个参数也是一个函数对象,作用于多个元素。如果函数返回的是true,则该次的元素被储存在返回的表中。filter函数通过函数来筛选符合要求的数据

def func(a):

    if a>100:

       return ture

     else:

        return false

print filter(func,[10,145,123,789])

5.reduce函数

reduce函数的第一个参数也是函数,这个函数对象作用于二个参数,自身接收2个参数

             print  reduce((lamdba x,y:x+y),[1,2,3,4,5,6])

reduce的第一个参数是lambda函数,它接收二个参数x,y,返回x+y

reduce将表中的1,2传递给lambda函数,得到3.这个返回值3作为lambda函数的第一个参数,表中的下一个元素54作为lambda第二个参数,得到8,依次调用下一个元素和lambda函数,直到表中没有剩余函数

最终结果就是24

原文地址:https://www.cnblogs.com/yana/p/4788638.html