Python的内置高阶函数

一、高阶函数

1.实参是一个函数名
2.函数的返回值是一个函数

实例:

def fun(a,b):
    return a + b

a = fun(1,2)
print(a)

print(abs(-11))

运行结果

3
11

1.函数本身也可以赋值给变量,变量也可以指向函数

f = abs
print(f(-10))

运行结果

10

2.传递的参数包括函数名

def fun(x,y,f):
    return f(x),f(y)

print(fun(-10,23,abs))

运行结果

(10, 23)

二、map函数

map()函数接收两个参数,一个是函数,一个是序列
map将传入的函数依次作用到序列的每个元素,并把结果作为新的序列返回

实例:

#对于序列[-1,3,-5,-4]的每个元素求绝对值
print(list(map(abs,[-1,3,-5,-4])))

运行结果:
[1, 3, 5, 4]

三、reduce函数

reduce:把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
reduce(f,[x1,x2,x3,x4,x5] = f(f(f(x1,x2),x3),x4)

实例:

from functools import reduce

def multi(x,y):
    return x * y

print(reduce(multi,range(1,5)))

def add(x,y):
    return x + y

print(reduce(add,[1,2,3,4,5]))

运行结果;
24
15

四、filter函数

filter过滤函数
和map()类似,也接收一个函数和一个序列
但fileter()把传入的函数依次作用于每个元素,然后根据返回值
是True汉时False来决定保留还是丢弃该元素

实例:

#0~9的偶数
def isodd(num):
    if num % 2 == 0:
        return True
    else:
        return False

print(list(filter(isodd,range(10))))

运行结果:
[0, 2, 4, 6, 8]

五、sorted函数

sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。对比原始的list和经过key=abs处理过的list:然后sorted()函数按照keys进行排序,并按照对应关系返回list相应的元素:

实例:

#列表的排序方法
li = [2,1,3,4]
li.sort(reverse=True)
print(li)
#排序函数
a = sorted(li,reverse=True)
print(a)

运行结果:
[4, 3, 2, 1]
[4, 3, 2, 1]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值