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中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
pip命令无法使用的解决方法
Jun 12 Python
Python实现的从右到左字符串替换方法示例
Jul 06 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python之pymysql的使用小结
Jul 01 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
django实现后台显示媒体文件
Apr 07 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
python 解决微分方程的操作(数值解法)
May 26 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 google或baidu分页代码
2009/11/26 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python爬虫使用cookie登录详解
2017/12/27 Python
python3.7.0的安装步骤
2018/08/27 Python
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
节约电力资源的建议书
2014/03/12 职场文书
运动会闭幕词
2015/01/28 职场文书
护士节慰问信
2015/02/15 职场文书