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 25 Python
tensorflow中next_batch的具体使用
Feb 02 Python
Python从函数参数类型引出元组实例分析
May 28 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
Jupyter Notebook安装及使用方法解析
Nov 12 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 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
域名查询代码公布
2006/10/09 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
基于JavaScript 类的使用详解
2013/05/07 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python编程之多态用法实例详解
2015/05/19 Python
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python批量查询域名是否被注册过
2017/06/21 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python实现石头剪刀布程序
2021/01/20 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python db类用法说明
2020/07/07 Python
python/golang 删除链表中的元素
2020/09/14 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
党员岗位承诺书
2014/03/25 职场文书
股权转让协议书范本
2014/04/12 职场文书
岗位明星事迹材料
2014/05/18 职场文书
单位委托函范文
2015/01/29 职场文书
财务稽核岗位职责
2015/04/13 职场文书
职工宿舍管理制度
2015/08/05 职场文书