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中元组,列表,字典的区别
May 21 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
Python Series从0开始索引的方法
Nov 06 Python
pyqt5实现登录界面的模板
May 30 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
使用python求斐波那契数列中第n个数的值示例代码
Jul 26 Python
Python3如何在服务器打印资产信息
Aug 27 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
Dec 05 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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树的代码,可以嵌套任意层
2006/10/09 PHP
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP 强制下载文件代码
2010/10/24 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
javascript 闭包
2011/09/15 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
小程序实现留言板
2018/11/02 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
python3字符串操作总结
2019/07/24 Python
pytorch打印网络结构的实例
2019/08/19 Python
tensorflow常用函数API介绍
2020/04/19 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
雪山饭庄的创业计划书范文
2014/01/18 职场文书
团日活动总结
2014/04/28 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python