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使用Tkinter实现机器人走迷宫
Jan 22 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
Tkinter中复选菜单是否被选中的判断与设置方式
Mar 04 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 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后退一页表单内容保存实现方法
2012/06/17 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP实现无限级分类(不使用递归)
2015/10/22 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
Python中如何导入类示例详解
2019/04/17 Python
Python 硬币兑换问题
2019/07/29 Python
Series和DataFrame使用简单入门
2019/11/13 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
行政前台岗位职责
2013/12/04 职场文书
应用化学专业职业生涯规划书
2014/01/22 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
小学安全教育材料
2014/02/17 职场文书
蓝颜请假条
2014/04/11 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
面试复试通知单
2015/04/24 职场文书
贷款担保书范本
2015/09/22 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
MySQL 查询速度慢的原因
2021/05/25 MySQL
Python数据分析之pandas读取数据
2021/06/02 Python