APP下载

Python学习教程:Python3匿名函式lambda详解及使用示例

消息来源:baojiabao.com 作者: 发布时间:2024-05-17

报价宝综合消息Python学习教程:Python3匿名函式lambda详解及使用示例

Python学习教程:Python3匿名函式lambda详解及使用示例

概述

匿名函式,顾名思义即没有名称的函式,和def定义的函式的最大区别在于匿名函式建立后返回函式本身(即匿名函式不需要return来返回值),表示式本身结果就是返回值,而def建立后则赋值给一个变数名,在Python中,我们利用关键词lambda建立匿名函式,以下是匿名函式lambda表示式的形式:

lambda arg1,arg2,.....argn:expression

以下为一些lambda的特点:

lambda 是一个表示式,而不是一个语句,即我们可以在任何可以使用表示式的场景一样使用lambda。

lambda 的主体也是一个表示式,即和def定义的函式一样,lambda也有函式主体,不过lambda的主体仅仅是一个表示式,所以其使用的功能受到较大的限制。

lambda使用

无参匿名函式

# 可以将lambda直接传递给一个变数,像呼叫一般函式一样使用

B = lambda :True

print(B)

# 等价于

def BF:

return True

print(BF)

示例结果:

True

True

有参匿名函式

支援多个引数

引数无预设值

two_sum = lambda x, y: x + y

# 等同于:

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

print(two_sum(1,2))

示例结果:

3

引数带预设值

sum_with_100 = lambda x, y=100: x + y

# 等同于:

def sum_with_100(x, y=100): return x + y

print(sum_with_100(200))

示例结果:

300

从后面传参

之前的示例我们将lambda匿名函式赋值一个变数,通过类似def定义的函式的方式传参,我们可以在lambda后面直接传递引数:

two_sum = (lambda x, y: x + y)(3, 4)

print(two_sum)

示例结果:

7

巢状使用

将lambda巢状到普通函式中,lambda函式本身做为return的值,构建简单的闭包

sum_with_100 = sum(100)

result = sum_with_100(200)

print(result)

示例结果:

300

一些使用例项

1. 结合三元表示式求两值中最小值

lower = lambda x,y: x if xprint(lower(7,100))

例项结果:

7

2. 对字典某一键值进行排序

d = [{"order":3},{"order":1},{"order":2}]

# 根据order键值排序

d.sort(key=lambda x:x[\'order\'])

print(d)

例项结果

[{\'order\': 1}, {\'order\': 2}, {\'order\': 3}]

关于匿名函式lambda今天跟大家分享这么多,应该还是比较好理解的!更多的Python学习教程知识点会继续跟大家分享,或者说大家有什么想学的Python章节和知识点也可以留言哦!

2020-01-12 05:50:00

相关文章