高阶函数与匿名函数

高阶函数

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

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*x
m1=map(f2,lt)
print(type(m1))
print (m1)

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

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

def f(x,y):
    return x+y
print (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 ==1
print(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 test1
print test

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

匿名函数

#没有名字的函数

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


6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值