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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
Feb 19 Python
手把手教你怎么用Python实现zip文件密码的破解
May 27 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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获取当前页面完整URL的实现代码
2013/06/10 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
python k-近邻算法实例分享
2014/06/11 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python对象转JSON字符串的方法
2016/04/27 Python
python对象及面向对象技术详解
2016/07/19 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
机器学习10大经典算法详解
2017/12/07 Python
python设置环境变量的原因和方法
2019/06/24 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
优秀学生事迹材料
2014/02/08 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
会计求职信范文
2014/05/24 职场文书
经贸日语专业自荐信
2014/09/02 职场文书
写给父母的感谢信
2015/01/22 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
Python 文字识别
2022/05/11 Python