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中用max()方法求最大值的介绍
May 15 Python
Python变量作用范围实例分析
Jul 07 Python
Python3使用requests登录人人影视网站的方法
May 11 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
Python的多维空数组赋值方法
Apr 13 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
基于python生成器封装的协程类
Mar 20 Python
Python安装selenium包详细过程
Jul 23 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
python中format函数如何使用
Jun 22 Python
Python Flask实现进度条
May 11 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实现文件上传二法
2006/10/09 PHP
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
jquery each()源代码
2011/02/14 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
scrapy爬虫实例分享
2017/12/28 Python
python文件和文件夹复制函数
2020/02/07 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
智能室内花园:Click & Grow
2021/01/29 全球购物
采购类个人求职的自我评价
2014/02/18 职场文书
挂牌仪式主持词
2014/03/20 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
求职信标题怎么写
2014/05/26 职场文书
班风口号
2014/06/18 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
思想工作总结范文
2015/08/12 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS