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开发编码规范
Sep 08 Python
python实现进程间通信简单实例
Jul 23 Python
Python中使用logging模块打印log日志详解
Apr 05 Python
python基础之入门必看操作
Jul 26 Python
Python3.5 创建文件的简单实例
Apr 26 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Python中作用域的深入讲解
Dec 10 Python
Python实现程序判断季节的代码示例
Jan 28 Python
wxPython实现画图板
Aug 27 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
python获取系统内存占用信息的实例方法
Jul 17 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
解析php5配置使用pdo
2013/07/03 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
微信小程序实战之自定义模态弹窗(8)
2017/04/18 Javascript
JavaScript定义函数_动力节点Java学院整理
2017/06/27 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
Vue 监听元素前后变化值实例
2020/07/29 Javascript
Python单链表的简单实现方法
2014/09/23 Python
玩转python爬虫之正则表达式
2016/02/17 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python类成员继承重写的实现
2020/09/16 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
大学四年个人自我小结
2014/03/05 职场文书
公司联欢会策划方案
2014/05/19 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
田径运动会通讯稿
2015/07/18 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
详解Flask开发技巧之异常处理
2021/06/15 Python