python中key=lambda_python中Lambda表达式详解

news/2025/3/31 18:49:48/

如果你在学校读的是计算机科学专业,那么可能学过 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。即找出带有两个属性的所有标签,如 下所示:

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表达式的相关知识点内容,感谢大家的阅读和对脚本之家的支持。


http://www.ppmy.cn/news/970168.html

相关文章

Java之Lambda表达式详解

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 一、lambda 表达式的语法格式如下&#…

The Lambda Calculus and Combinators

Combinatory logic and lambda-calculus, originally devised in the 1920s, have since developed into linguistic tools, especially useful in programming languages. The λ-calculusCombinatory logicThe power of λ and CLComputable functionsUndecidabilityFormal …

Java中的Lambda表达式

Java中的Lambda表达式 含义: Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 表达式是使用最小可能语法编写的函数定义: Lambda 表达式产生函数,而不是类。 虽然在 JVM(Java Vir…

Lambda方式创建多线程

Lambda方式创建多线程 一、Lambda表达式的标准格式 Lamdba创建线程,是对匿名内部类创建多线程的简化 由三部分组成: a、一些参数b、一个箭头c、一段代码格式: (参数列表)->{一些重写方法的代码}解释说明…

lambda表达式filter使用

filter经常使用到,作为一个积累,直接贴代码 实体类 public class User implements Serializable {private String name;private Integer age;private String address;private BigDecimal balance;private Date createTime;public String getName() {return name;}public void…

JAVA Lambda表达式过滤

1. list字符串去重List<String> unique list.stream().distinct().collect(Collectors.toList());2.集合对象去重// Person 对象 public class Person {private String id;private String name;private String sex;<!--省略 get set--> }// 根据name去重 List<…

python lambda 判断_关于 Python中lambda 使用

在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答。 1、lambda是什么? 看个例子: 1 g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>>3 当然,你也…

python key=lambda函数_Python lambda函数,pythonlambda

lambda x: 3*x+1 怎么用它呢 , 来给它一个名字 g = lambda x:3*x+1 调用一下它 g(2) 如果想有多个input怎么办? 比如说想把 first name 和 last name 合起来 ? full_name = lambda fn,ln: fn.strip().title() + " " +ln.srip().title() .tit…