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 实现堆排序算法代码
Jun 05 Python
python以环状形式组合排列图片并输出的方法
Mar 17 Python
简洁的十分钟Python入门教程
Apr 03 Python
python socket多线程通讯实例分析(聊天室)
Apr 06 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
Python语言描述随机梯度下降法
Jan 04 Python
Python实现k-means算法
Feb 23 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
Django实现图片上传功能步骤解析
Apr 22 Python
pandas取dataframe特定行列的实现方法
May 24 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP的历史和优缺点
2006/10/09 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
python tornado使用流生成图片的例子
2019/11/18 Python
python3 实现口罩抽签的功能
2020/03/11 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
canvas线条的属性详解
2018/03/27 HTML / CSS
Wallis官网:英国女装零售商
2020/01/21 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
如何强制垃圾回收
2015/10/06 面试题
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
建筑设计师岗位职责
2013/11/18 职场文书
护士实习鉴定范文
2013/12/22 职场文书
本科生职业生涯规划书范文
2014/01/21 职场文书
高二生物教学反思
2014/01/27 职场文书
教学改革实施方案
2014/03/31 职场文书
清明祭英烈活动总结
2015/05/11 职场文书