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 相关文章推荐
Python3中多线程编程的队列运作示例
Apr 16 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python实现抢购IPhone手机
Feb 07 Python
使用Python读取大文件的方法
Feb 11 Python
破解安装Pycharm的方法
Oct 19 Python
pandas删除指定行详解
Apr 04 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
解决Python logging模块无法正常输出日志的问题
Feb 21 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
Python使用configparser读取ini配置文件
May 25 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
pandas创建DataFrame的7种方法小结
Jun 14 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
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
smarty中post用法实例
2014/11/28 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
jQuery 三击事件实现代码
2013/09/11 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
python gdal安装与简单使用
2019/08/01 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
怎样声明接口
2014/09/19 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
如何整合JQuery和Prototype
2014/01/31 面试题
教师档案管理制度
2014/01/23 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python
Python实现双向链表基本操作
2022/05/25 Python
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS