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 不同对象比较大小示例探讨
Aug 21 Python
Python中列表、字典、元组、集合数据结构整理
Nov 20 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
python匿名函数用法实例分析
Aug 03 Python
用python拟合等角螺线的实现示例
Dec 27 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python实现代码块儿折叠
Apr 15 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 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页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
深入PHP curl参数的详解
2013/06/17 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php自定义函数实现二维数组排序功能
2016/07/20 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
Python中实现结构相似的函数调用方法
2015/03/10 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
在pycharm中显示python画的图方法
2019/08/31 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
基于python实现地址和经纬度转换
2020/05/19 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
python 如何快速复制序列
2020/09/07 Python
python 实现单例模式的5种方法
2020/09/23 Python
介绍一下你对SOA的认识
2016/04/24 面试题
学院书画协会部门岗位职责
2013/12/01 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
基层党支部承诺书
2015/04/30 职场文书
介绍信怎么写
2015/05/05 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL