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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
python正则表达式re模块详细介绍
May 29 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
使用requests库制作Python爬虫
Mar 25 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
2020版Python学习路线图(附学习资料)
Sep 15 Python
python读写数据读写csv文件(pandas用法)
Dec 14 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
Python 解决空列表.append() 输出为None的问题
May 23 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
德生9700DX电路分析
2021/03/02 无线电
简单易用的计数器(数据库)
2006/10/09 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
php图片裁剪函数
2018/10/31 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
Python转换时间的图文方法
2019/07/01 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Django中的session用法详解
2020/03/09 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
合作经营协议书范本
2014/09/16 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫