Python 匿名函数

Python 匿名函数

一、匿名函数概述:

在Python中,除了def定义的函数外,还有一种使用lambda定义的匿名函数。它可以用在任何普通函数可以使用的地方,但在定义时被严格限定为单一表达式

二、简单使用:

在Python中,我们使用def语句来定义函数:

举个栗子:

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

除了上面定义函数外,Python还提供了一个关键字lambda,简单理解就是没有名称的函数:

举个栗子:

lambda x,y: x+y
  • 关键字lambda说明它是一个匿名函数,冒号:前面的变量是该匿名函数的参数,冒号:后面的是函数的返回值
  • 注意:这里不使用return关键字,进行函数的返回值

三、函数调用:

最直接的调用:

(lambda x: x + 3)(3)
# 输出结果:6

匿名函数本质上是一个函数对象,也可以将其赋值给另一个变量,再由该变量来调用函数:

f = lambda x: x + 3
f
# 输出结果:<function __main__.<lambda>>
f(3)
# 输出结果:6

四、使用场景:

不使用匿名函数的写法:

def func(func, my_list):
    """创建一个函数: func参数也是一个函数, my_list 参数是一个列表"""
    return [func(item) for item in my_list]


def add(x):
    """普通的加法"""
    return x + 1


result = func(add, [1, 2, 3, 4, 5])
print result
# 输出结果:[2, 3, 4, 5, 6]

使用匿名函数的写法:

def func(func, my_list):
    """创建一个函数: func参数也是一个函数, my_list 参数是一个列表"""
    return [func(item) for item in my_list]

result = func(lambda item: item + 1, [1, 2, 3, 4, 5])
print result
# 输出结果:[2, 3, 4, 5, 6]

使用if/else

(lambda x, y: x if x < y else y)(1, 2)
# 输出结果:1
f = lambda x, y: x if x < y else y
f(1, 2)
# 输出结果:1

递归

f = lambda func, n: 1 if n == 0 else n * func(func, n - 1)
f(f, 3)
# 输出结果:6

五、总结:

匿名函数本质上是一个函数,没有函数名称,因此使用匿名函数不用担心函数名冲突

匿名函数一般适用于创建一些函数逻辑简单

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值