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编程中一些重用与缩减的建议
Apr 14 Python
Python中pygame安装方法图文详解
Nov 11 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
如何在python中使用selenium的示例
Dec 26 Python
tensorflow实现简单的卷积网络
May 24 Python
Python中文编码知识点
Feb 18 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
python中sklearn的pipeline模块实例详解
May 21 Python
使用Python构造hive insert语句说明
Jun 06 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
Python上下文管理器Content Manager
Jun 26 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 多维数组排序实现代码
2009/08/05 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
用js实现trim()的解决办法
2013/04/16 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
vue.js指令和组件详细介绍及实例
2017/04/06 Javascript
移动端如何用下拉刷新的方式实现上拉加载
2018/12/10 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python ZipFile模块详解
2013/11/01 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
介绍一下Ruby的特点
2013/01/20 面试题
秋季运动会表扬稿
2014/01/16 职场文书
先进党支部申报材料
2014/12/24 职场文书
开展警示教育活动总结
2015/05/09 职场文书
学校计划生育责任书
2015/05/09 职场文书
学校隐患排查制度
2015/08/05 职场文书
60句有关成长的名言
2019/09/04 职场文书