龙空技术网

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

千锋IT教育 428

前言:

今天看官们对“使用三目运算符输出最大值和最小值”大概比较关心,各位老铁们都想要了解一些“使用三目运算符输出最大值和最小值”的相关内容。那么小编在网络上收集了一些对于“使用三目运算符输出最大值和最小值””的相关文章,希望朋友们能喜欢,朋友们一起来了解一下吧!

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 :Trueprint(B())# 等价于def BF(): return Trueprint(BF())

示例结果:

TrueTrue

有参匿名函数

支持多个参数

参数无默认值

two_sum = lambda x, y: x + y# 等同于:def two_sum(x, y): return x + yprint(two_sum(1,2))

示例结果:

3

参数带默认值

sum_with_100 = lambda x, y=100: x + y# 等同于:def sum_with_100(x, y=100): return x + yprint(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 x<y else yprint(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章节和知识点也可以留言哦!

标签: #使用三目运算符输出最大值和最小值 #pythonsortlambda