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的Django框架中的templates设置
May 11 Python
Python实现k-means算法
Feb 23 Python
python re模块的高级用法详解
Jun 06 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
python的中异常处理机制
Aug 30 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
python实现树的深度优先遍历与广度优先遍历详解
Oct 26 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
python3读取文件指定行的三种方法
May 24 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生成EXCEL的东东
2006/10/09 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
Python标准库shutil用法实例详解
2018/08/13 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
详解python pandas 分组统计的方法
2019/07/30 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
python实现斗地主分牌洗牌
2020/06/22 Python
Python通过Schema实现数据验证方式
2020/11/12 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
加热夹克:RAVEAN
2018/10/19 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
python在package下继续嵌套一个package
2022/04/14 Python