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写的一个文本编辑器
Jan 23 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
python中解析json格式文件的方法示例
May 03 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
python实现装饰器、描述符
Feb 28 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
python保存log日志,实现用log日志画图
Dec 24 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
python热力图实现的完整实例
Jun 25 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
Laravel关系模型指定条件查询方法
2019/10/10 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
JS打印彩色菱形的实例代码
2018/08/15 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
小程序实现分类页
2019/07/12 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
python实现简单温度转换的方法
2015/03/13 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
小学音乐课教学反思
2016/02/18 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书