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安装教程 Pycharm安装详细教程
May 02 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
详解python中递归函数
Apr 16 Python
python批量下载抖音视频
Jun 17 Python
python元组的概念知识点
Nov 19 Python
Python实现word2Vec model过程解析
Dec 16 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
QML用PathView实现轮播图
Jun 03 Python
通过实例了解python__slots__使用方法
Sep 14 Python
Python 微信公众号文章爬取的示例代码
Nov 30 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 字符转义 注意事项
2009/05/27 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
学习ExtJS fit布局使用说明
2009/10/08 Javascript
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
使用python存储网页上的图片实例
2018/05/22 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
pygame实现成语填空游戏
2019/10/29 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
营销与策划专业毕业生求职信
2013/11/01 职场文书
实习求职信
2013/12/01 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
小学科学教学计划
2015/01/21 职场文书
道歉短信大全
2015/05/12 职场文书
单位车辆管理制度
2015/08/05 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers