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 18 Python
解决Python传递中文参数的问题
Aug 04 Python
Python 基础之字符串string详解及实例
Apr 01 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
Python反转序列的方法实例分析
Mar 21 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
Django REST framework 分页的实现代码
Jun 19 Python
使用python动态生成波形曲线的实现
Dec 04 Python
django 读取图片到页面实例
Mar 27 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 发送带附件邮件示例
2014/01/23 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
JS hashMap实例详解
2016/05/26 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
大学生毕业求职简历的自我评价
2013/10/24 职场文书
安全员岗位职责
2013/11/11 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
预备党员党课思想汇报
2014/01/13 职场文书
办护照工作证明范本
2014/01/14 职场文书
房屋租赁协议书
2014/04/10 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python