高阶函数与与匿名函数

来源:互联网 发布:百鸟朝凤 知乎 编辑:程序博客网 时间:2024/06/07 06:04

高阶函数

#就是把函数当成参数传递的一种函数

def add(x,y,f):    return f(x)+f(y)print (add(-8,11,abs))

19
#map()函数
#map()是一个内置函数,他接受一个函数f和一个list或者tuple,并且将里面的元素传递给函数f,最后交给map()函数处理,并且返回一个列表
#map()函数第一个参数是函数,第二个参数是可迭代对象

lt =[1,2,3,4,5]def f2(x):    return x*xm1=map(f2,lt)print(type(m1))print (m1)

type ‘list’
[1, 4, 9, 16, 25]

#reduce()函数
#传入的函数必须接受两个参数
#每次把可迭代对象的前两个参数作为函数的实参,传入到f函数中
#把每次前两个元素的运算的结果作为第一个实参,继续与下一个参数做运算,直到读完元素

def f(x,y):    return x+yprint (reduce(f,[1,2,3,4,5],10))

25

#filter()函数
#每次把可迭代对象的元素传入进去,如果返回为True,则保留该元素,如果返回为False,则不保留

a =[1,2,3,4,5,6]def is_odd(x):    return x%2 ==1print(filter(is_odd,a))

[1, 3, 5]

#sorted()函数
#对字典进行排序
#sorted(…)
# sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list
#iterable:是可迭代类型;
# cmp:用于比较的函数,比较什么由key决定;
# key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
# reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
# 返回值:是一个经过排序的可迭代类型,与iterable一样。

mm=dict(a=1,c=4,b=10,d=9)#按照key值升序,返回一个列表test1 = sorted(mm.iteritems(),key =lambda d:d[0],reverse=False)#按照value值升序,返回一个列表\test = sorted(mm.iteritems(),key =lambda d:d[1],reverse=False)print test1print test

[(‘a’, 1), (‘b’, 10), (‘c’, 4), (‘d’, 9)]
[(‘a’, 1), (‘c’, 4), (‘d’, 9), (‘b’, 10)]

匿名函数

#没有名字的函数

def sum(x,y):    return x+yprint (sum(1,5))#下面就是匿名函数,结果跟上面一样都为6#匿名函数方便使用,其实不常用m = lambda x,y:x+yprint (m(1,5))

6
6

原创粉丝点击