概述
匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在Python中,我们利用关键词lambda创建匿名函数,以下是匿名函数lambda表达式的形式:
lambda arg1,arg2,.....argn:expression
以下为一些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的值,构建简单的闭包
def sum(x): return lambda y: x + y 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}]
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对呐喊教程的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。