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 os模块介绍
Nov 30 Python
python简单实现旋转图片的方法
May 30 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
PYTHON压平嵌套列表的简单实现
Jun 08 Python
Django中使用Celery的方法示例
Nov 29 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
Python检测数据类型的方法总结
May 20 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
Python txt文件常用读写操作代码实例
Aug 03 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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中header和session_start前不能有输出原因分析
2013/01/11 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
js读写json文件实例代码
2014/10/21 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
用Python输出一个杨辉三角的例子
2014/06/13 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python3实现字符串操作的实例代码
2019/04/16 Python
详解Python中的分支和循环结构
2020/02/11 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
交通法规咨询中心工作职责
2013/11/27 职场文书
行政人员岗位职责
2013/12/08 职场文书
商场主管竞聘书
2014/03/31 职场文书
车间主任岗位职责
2015/02/03 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
幸福终点站观后感
2015/06/04 职场文书
教师读书活动心得体会
2016/01/14 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
redis缓存存储Session原理机制
2021/11/20 Redis
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL