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通过pil为png图片填充上背景颜色的方法
Mar 17 Python
机器学习python实战之手写数字识别
Nov 01 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
pandas 转换成行列表进行读取与Nan处理的方法
Oct 30 Python
python实现蒙特卡罗方法教程
Jan 28 Python
python自动化之Ansible的安装教程
Jun 13 Python
python中有关时间日期格式转换问题
Dec 25 Python
Python Json数据文件操作原理解析
May 09 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
python 用opencv实现霍夫线变换
Nov 27 Python
python爬虫破解字体加密案例详解
Mar 02 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选项与信息函数的使用详解
2013/05/10 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
深入解析神经网络从原理到实现
2019/07/26 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
建筑工程催款函
2015/06/24 职场文书
建议书的格式及范文
2015/09/14 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
python中mongodb包操作数据库
2022/04/19 Python