python中Lambda表达式详解
作者:laozhang 发布时间:2021-12-06 22:40:26
标签:python,Lambda,表达式
如果你在学校读的是计算机科学专业,那么可能学过 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 函数与正则表达式,来查找匹配特定字符串模式 的属性的标签。


猜你喜欢
- 如何在浏览器地址栏显示自己的Favicons小图标?显示效果如下列网站的图标:Google网易163上面两个网站都设置了自己的Favicon
- 我就废话不多说了,大家还是直接看代码吧~type Wait interface { // Register waits returns a
- 1)视频读取import cv2cap = cv2.VideoCapture('E:\\Video\\20000105_224116
- 1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直
- 一、Mysql使用limit分页select * from stu limit m, n; //m = (startPage-1)*page
- 之前的博客里使用tf读取数据都是每次fetch一条记录,实际上大部分时候需要fetch到一个batch的小批量数据,在tf中这一操作的明显变
- 今早在对一张table 创建primay key过程中发生了断电,当电脑再次启动时候,发现mysql 服务无法启动,使用 net start
- 1、通常sql执行流程用户发起请求到业务服务器,执行sql语句时,先到连接池中获取连接,然后到mysql服务器执行查询。1.1 问题1:My
- 从cnblogs看到的代码,作者的代码随便不兼容firefox但,有助于大家学习为什么下面的代码兼容了firefox,大家可以对比下,有助于
- 前言基于 Pythgo的 Django 框架,编程实现一个 WEB 程序,为用户提供 城市信息查询功能。用户可输入一个城市名,输出其所在省份
- 啥也不说了,直接上代码吧!# encoding:utf-8import requests # 导入requests模块用于访问测试自己的ip
- 一、概述网络爬虫(Web crawler),又称为网络蜘蛛(Web spider)或网络机器人(Web robot),主要用来爬取目标网站内
- 一、读写excel数据利用pandas可以很方便的读写excel数据1.1 读:data_in = pd.read_excel('M
- mysql 下载安装配置 5.7.20 / 5.7.21,供大家参考,具体内容如下1、下载mysql,下载地址选择操作系统和版本,我是64位
- 在页面中自定义了changejs函数后页面提示错误:Active Server Pages 错误 'ASP 0138' 嵌套
- 本文实例讲述了javascript获取select值的方法。分享给大家供大家参考。具体分析如下:1. 获取显示的汉字document.get
- 本文实例为大家分享了python发邮件精简代码,供大家参考,具体内容如下import smtplibfrom email.mime.text
- 打印在使用go写一些小程序时,我们没必要引入额外的包,直接使用fmt标准包打印即可:import "fmt"func m
- 先看一段代码<!DOCTYPE html><html lang="en"><head>
- 一、PING简介PING(Packet Internet Grope),也称因特网包探索器。PING使用ICMP回送(ECHO)请求和回送(