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 相关文章推荐
Python3基础之函数用法
Aug 13 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
利用python发送和接收邮件
Sep 27 Python
Python中定时任务框架APScheduler的快速入门指南
Jul 06 Python
浅谈python迭代器
Nov 08 Python
分析python切片原理和方法
Dec 19 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
python爬取个性签名的方法
Jun 17 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
python处理json数据文件
Apr 11 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大文件分割上传 PHP分片上传
2017/08/28 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
Js冒泡事件详解及阻止示例
2014/03/21 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
2017/06/25 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
简单谈谈python中的多进程
2016/11/06 Python
python中subprocess批量执行linux命令
2018/04/27 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
详解Python字符串切片
2019/05/20 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
2013英文求职信模板范文
2013/11/15 职场文书
新店开张活动方案
2014/08/24 职场文书
工程索赔意向书
2014/08/30 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
Django migrate报错的解决方案
2021/05/20 Python
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js