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抓取京东价格分析京东商品价格走势
Jan 09 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 Python
python实现关闭第三方窗口的方法
Jun 28 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
简单的Python人脸识别系统
Jul 14 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
如何查看python关键字
Jan 17 Python
Python中的 Set 与 dict
Mar 13 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 工厂模式使用方法
2010/05/18 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
致接力运动员广播稿
2014/02/17 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
《钱学森》听课反思
2014/03/01 职场文书
护士节策划方案
2014/05/19 职场文书
驳回起诉裁定书
2015/05/19 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
Python 实现定积分与二重定积分的操作
2021/05/26 Python
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
详解Spring事件发布与监听机制
2021/06/30 Java/Android