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 相关文章推荐
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
python变量不能以数字打头详解
Jul 06 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
python的列表List求均值和中位数实例
Mar 03 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
python实现socket简单通信的示例代码
Apr 13 Python
python 爬取吉首大学网站成绩单
Jun 02 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优化那些事(经验分享)
2014/11/27 PHP
php实现异步数据调用的方法
2015/12/24 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
Ajax基础知识详解
2017/02/17 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
python远程登录代码
2008/04/29 Python
解析Python中的二进制位运算符
2015/05/13 Python
Python人脸识别初探
2017/12/21 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
python实现邮件自动发送
2019/08/10 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
物流仓储计划书
2014/01/10 职场文书
生产厂长岗位职责
2014/02/21 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
反邪教学习心得体会
2016/01/15 职场文书
Django REST framework 限流功能的使用
2021/06/24 Python