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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
Python 专题四 文件基础知识
Mar 20 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
python3爬取数据至mysql的方法
Jun 26 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
Python hashlib模块加密过程解析
Nov 05 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
python-for x in range的用法(注意要点、细节)
May 10 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
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
js玩一玩WSH吧
2007/02/23 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
开源一个微信小程序仪表盘组件过程解析
2019/07/30 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
python检测IP地址变化并触发事件
2018/12/26 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
SHEIN台湾:购买最新流行女装服饰
2019/05/18 全球购物
集世界奢侈品和设计师品牌的意大利精品买手店:Tessabit
2019/08/17 全球购物
益模软件Java笔试题
2012/03/27 面试题
金融专业毕业生推荐信
2013/11/26 职场文书
医学专业大学生求职的自我评价
2013/11/27 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
希特勒的演讲稿
2014/05/23 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书