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实现从url中提取域名的几种方法
Sep 26 Python
Python常用知识点汇总
May 08 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
tensorflow中next_batch的具体使用
Feb 02 Python
pycharm远程linux开发和调试代码的方法
Jul 17 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
Mar 29 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
用Python开发app后端有优势吗
Jun 29 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
几款好用的python工具库(小结)
Oct 20 Python
Pygame Time时间控制的具体使用详解
Nov 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
php中理解print EOT分界符和echo EOT的用法区别小结
2010/02/21 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
图解javascript作用域链
2019/05/27 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
Python元字符的用法实例解析
2018/01/17 Python
使用Scrapy爬取动态数据
2018/10/21 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python内置函数及功能简介汇总
2020/10/13 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
html5 canvas 使用示例
2010/10/22 HTML / CSS
2013的个人自我评价
2013/12/26 职场文书
消防安全检查制度
2014/02/04 职场文书
消防安全汇报材料
2014/02/08 职场文书
大学生个人求职信例文
2014/07/07 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
被告代理词范文
2015/05/25 职场文书
八月一日观后感
2015/06/10 职场文书
关于环保的宣传稿
2015/07/23 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android