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调用浏览器并打开一个网址的例子
Jun 05 Python
Python中使用不同编码读写txt文件详解
May 28 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python实现求笛卡尔乘积的方法
Sep 16 Python
对dataframe数据之间求补集的实例详解
Jan 30 Python
python 调用钉钉机器人的方法
Feb 20 Python
使用python制作一个解压缩软件
Nov 13 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
用Python selenium实现淘宝抢单机器人
Jun 18 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
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python爬取成语接龙类网站
2018/10/19 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
工程测量与监理专业应届生求职信
2013/11/27 职场文书
总经理秘书工作职责
2013/12/26 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
自我鉴定书
2014/03/24 职场文书
模具专业自荐信
2014/05/29 职场文书
个人求职自荐信范文
2015/03/06 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
电信营业员岗位职责
2015/04/14 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers