Python3匿名函数lambda介绍与使用示例


Posted in Python onMay 18, 2019

概述

匿名函数,顾名思义即没有名称的函数,和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的值,构建简单的闭包

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}]

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python协程之动态添加任务的方法
Feb 19 Python
详解如何减少python内存的消耗
Aug 09 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
Django--权限Permissions的例子
Aug 28 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
python设置中文界面实例方法
Oct 27 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 #Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 #Python
python的内存管理和垃圾回收机制详解
May 18 #Python
Django处理多用户类型的方法介绍
May 18 #Python
Django 配置多站点多域名的实现步骤
May 17 #Python
将Python字符串生成PDF的实例代码详解
May 17 #Python
Python Django框架单元测试之文件上传测试示例
May 17 #Python
You might like
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
javascript中window.event事件用法详解
2012/12/11 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
用python写asp详细讲解
2013/12/16 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
《骑牛比赛》教后反思
2014/04/22 职场文书
村党支部公开承诺书
2014/05/29 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫