python中Lambda表达式详解


Posted in Python onNovember 20, 2019

如果你在学校读的是计算机科学专业,那么可能学过 Lambda 表达式, 不过可能从来没有用过它。如果你不是计算机科学专业,它们看着可能 有点儿陌生(或者只是“曾经学习过的东西”)。在这一节里,虽然我们 不打算深入学习这类函数,但是会用几个例子来演示它们是如何用在网 页抓取中的。

Lambda 表达式本质上就是一个函数,可以作为变量传入另一个函数; 也就是说,一个函数不是定义成 f(x, y),而是可以定义成 f(g(x), y) 或 f(g(x), h(y)) 的形式。 BeautifulSoup 允许我们把特定类型的函数作为参数传入 find_all 函 数。唯一的限制条件是这些函数必须把一个标签对象作为参数并且返回 布尔类型的结果。BeautifulSoup 用这个函数来评估它遇到的每个标签对 象,最后把评估结果为“真”的标签保留,把其他标签剔除。

例如,下面的代码就是获取有两个属性的所有标签:

bs.find_all(lambda tag: len(tag.attrs) == 2)

这里,作为参数传入的函数是 len(tag.attrs) == 2。当该参数为真 时,find_all 函数将返回 tag。即找出带有两个属性的所有标签,如 下所示:

<div class="body" id="content"></div>
<span style="color:red" class="title"></span>

Lambda 函数非常实用,你甚至可以用它来替代现有的 BeautifulSoup 函 数:

bs.find_all(lambda tag: tag.get_text() ==  
'Or maybe he\'s only resting?')

如果不使用 Lambda 函数,代码如下:

bs.find_all('', text='Or maybe he\'s only resting?')

如果你能记住 Lambda 函数的语法,以及如何获取标签的属性,那么你 可能再也不需要记住 BeautifulSoup 的语法了!

由于 Lambda 函数可以是任意返回 True 或者 False 值的函数,你甚至 可以结合使用 Lambda 函数与正则表达式,来查找匹配特定字符串模式 的属性的标签。

以上就是关于python Lambda表达式的相关知识点内容,感谢大家的阅读和对三水点靠木的支持。

Python 相关文章推荐
Python读写Redis数据库操作示例
Mar 18 Python
Python中字符串的修改及传参详解
Nov 30 Python
python监控文件并且发送告警邮件
Jun 21 Python
如何在Django项目中引入静态文件
Jul 26 Python
python数组循环处理方法
Aug 26 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
python之基数排序的实现
Jul 26 Python
关于Python中*args和**kwargs的深入理解
Aug 07 Python
python中super()函数的理解与基本使用
Aug 30 Python
基于Python实现股票收益率分析
Apr 02 Python
TensorFlow索引与切片的实现方法
Nov 20 #Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 #Python
python中必要的名词解释
Nov 20 #Python
python做接口测试的必要性
Nov 20 #Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 #Python
Python脚本操作Excel实现批量替换功能
Nov 20 #Python
详解Python中的format格式化函数的使用方法
Nov 20 #Python
You might like
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
PHP中常用数组处理方法实例分析
2008/08/30 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
js创建对象的方式总结
2015/01/10 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
详解jQuery选择器
2016/12/21 Javascript
Vue组件开发初探
2017/02/14 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
基于Python实现天天酷跑功能
2021/01/06 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
开业庆典邀请函
2014/01/08 职场文书
争先创优公开承诺书
2014/08/30 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript