常用的一些高阶函数

前言

主要介绍python中的几个高阶函数的使用方法

lambda函数

lambda函数是一种小型的匿名函数,可以接收任意参数,但是只能有一个表达式

#语法
lambda arguments:expression
实例
通过变量调用lambda函数
#编写函数
def add(x):
    return x+1
#等同于匿名函数
lambda x:x+1

传入一个参数

#编写加法运算
def add(x):
    return x+1
#等同于匿名函数
lambda x:x+1
#调用方法
g = lambda x:x+1
print (g(5))

传入多个参数

x = lambda a, b : a * b
print(x(5, 6))

传入多个参数

x = lambda a, b : a * b
print(x(5, 6))
lambda函数作为参数进行传递
def odd(x):
    return x%2
temp =range(1,11)
#内置函数filter
filter(odd,temp)
________________
#等同于
filter(lambda x:x%2,range(1,11))
lambda函数作为其他函数的返回值

这个就是我们python中使用的闭包了

def myfunc(n):
  return lambda a : a * n
________________
abc = myfunc(3)  #abc = lambda a:a*3
abc(2) # 调用lambda函数 lambda 2:2*3 return 6  打印出6
map函数

使用map() 会根据提供的函数对指定序列做映射,一般跟lambda函数配合

#语法
map(function,iterable) #iterable指的是一个或者多个序列
实例
提供一个参数
def sequare(x):
    return x**2
map(sequare,[1,2,3])------>[1,4,9]
######################
#等同于
map(lambda x:x**2,[1,2,3])
提供两个参数
map(lambda x,y:x+y,[1,2,3],[4,5,6])--->[5,7,9]
filter函数

过滤函数,可以对序列进行过滤处理,通过自定义的函数过滤出新的函数

#语法
filter(function,iterable)
实例
#普通写法
def is_odd(n):
    return n % 2 == 1
 
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
[1,3,5,7]
######################
#等同于
filter(lambda x:x%2==1,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
reduce函数

对参数序列中的元素进行累加

#语法
reduce(function, iterable[, initializer])
实例
#结合匿名函数使用
from functools import reduce
sum2 = reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数
print(sum2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值