Python学习笔记之lambda表达式用法详解


Posted in Python onAugust 08, 2019

本文实例讲述了Python学习笔记之lambda表达式用法。分享给大家供大家参考,具体如下:

Lambda 表达式

使用 Lambda 表达式创建匿名函数,即没有名称的函数。lambda 表达式非常适合快速创建在代码中以后不会用到的函数。

麻烦的写法:

def multiply(x, y):
  return x * y

使用Lambda之后:

double = lambda x, y: x * y

Lambda 函数的组成部分:

  • 关键字 lambda 表示这是一个 lambda 表达式。
  • lambda 之后是该匿名函数的一个或多个参数(用英文逗号分隔),然后是一个英文冒号 :。和函数相似,lambda 表达式中的参数名称是随意的。
  • 最后一部分是被评估并在该函数中返回的表达式,和你可能会在函数中看到的 return 语句很像。
  • 备注:鉴于这种结构,lambda 表达式不太适合复杂的函数,但是非常适合简短的函数。

Lambda 表达式[相关练习]

map() 是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个将该函数应用到可迭代对象的每个元素的迭代器。下面的代码使用 map() 计算 numbers 中每个列表的均值,并创建列表 averages, 通过将 mean 函数替换为在 map() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。

numbers = [
        [34, 63, 88, 71, 29],
        [90, 78, 51, 27, 45],
        [63, 37, 85, 46, 22],
        [51, 22, 34, 11, 18]
      ]
def mean(num_list):
  return sum(num_list) / len(num_list)
averages = list(map(mean, numbers))
print(averages)

使用lambda重写后:

numbers = [
        [34, 63, 88, 71, 29],
        [90, 78, 51, 27, 45],
        [63, 37, 85, 46, 22],
        [51, 22, 34, 11, 18]
      ]
averages = list(map(lambda x: sum(x) / len(x), numbers))
print(averages) # [57.0, 58.2, 50.6, 27.2]

filter() 是一个高阶内置函数,接受函数和可迭代对象作为输入,并返回一个由可迭代对象中的特定元素(该函数针对该元素会返回 True)组成的迭代器。下面的代码使用 filter() 从 cities 中获取长度少于 10 个字符的名称以创建列表 short_cities。通过将 is_short 函数替换为在 filter() 的调用中定义的 lambda 表达式,重写这段代码,使代码更简练。

cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
def is_short(name):
  return len(name) < 10
short_cities = list(filter(is_short, cities))
print(short_cities)

使用lambda重写后:

cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
short_cities = list(filter(lambda n: len(n) < 10, cities))
print(short_cities) # ['Chicago', 'Denver', 'Boston']

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
用Python脚本生成Android SALT扰码的方法
Sep 18 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Python中xml和json格式相互转换操作示例
Dec 05 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
pytorch多GPU并行运算的实现
Sep 27 Python
python实现感知机模型的示例
Sep 30 Python
Django中ORM的基本使用教程
Dec 22 Python
python读取大文件越来越慢的原因与解决
Aug 08 #Python
Python实现Singleton模式的方式详解
Aug 08 #Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 #Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 #Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 #Python
pandas 选取行和列数据的方法详解
Aug 08 #Python
pandas 对日期类型数据的处理方法详解
Aug 08 #Python
You might like
PHP生成Flash动画的实现代码
2010/03/12 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
JQuery开发的数独游戏代码
2010/10/29 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
详解angularjs结合pagination插件实现分页功能
2017/02/10 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
详解vue-router基本使用
2017/04/18 Javascript
python获取图片颜色信息的方法
2015/03/18 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
python保存文件方法小结
2018/07/27 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
如何通过jdbc调用存储过程
2012/04/19 面试题
电信专业毕业生推荐信
2013/11/18 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
专职安全员岗位职责
2015/04/11 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript