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实现井字棋游戏
Mar 30 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
Python编程实现的图片识别功能示例
Aug 03 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
python Pandas 读取txt表格的实例
Apr 29 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
python中怎么表示空值
Jun 19 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二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
javascript中replace( )方法的使用
2015/04/24 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
Python实现可自定义大小的截屏功能
2018/01/20 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
django实现用户注册实例讲解
2019/10/30 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
初三新学期计划书
2014/05/03 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
详解MySQL 联合查询优化机制
2021/05/10 MySQL
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
详解Python类和对象内容
2021/06/22 Python
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python