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

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

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

概述bash

匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数建立后返回函数自己(即匿名函数不须要return来返回值),表达式自己结果就是返回值,而def建立后则赋值给一个变量名,在Python中,咱们利用关键词lambda建立匿名函数,如下是匿名函数lambda表达式的形式:闭包

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

如下为一些lambda的特色:学习

  1. lambda 是一个表达式,而不是一个语句,即咱们能够在任何能够使用表达式的场景同样使用lambda。
  2. lambda 的主体也是一个表达式,即和def定义的函数同样,lambda也有函数主体,不过lambda的主体仅仅是一个表达式,因此其使用的功能受到较大的限制。

lambda使用ui

无参匿名函数spa

# 能够将lambda直接传递给一个变量,像调用通常函数同样使用
B = lambda :True
print(B())
# 等价于
def BF():
 return True
print(BF())
复制代码

示例结果:code

True
True
复制代码

有参匿名函数cdn

支持多个参数blog

参数无默认值

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 x<y else y
print(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章节和知识点也能够留言哦!

相关文章
相关标签/搜索