python lambda函数菜鸟,python中lambda函数的定义和用法
如果你在学校学的是计算机专业,你可能学过Lambda表达式,但你可能从来没用过。如果你不是计算机科学专业的,它们可能看起来有点奇怪(或者只是“你学过的东西”)。在本节中,虽然我们不打算深入研究这些函数,但我们将使用几个示例来演示它们如何用于网页抓取。
Lambda表达式本质上是一个函数,可以作为变量传入另一个函数;即一个函数不是定义为f(x,y),而是可以定义为f(g(x),y)或f(g(x),h(y))。BeautifulSoup允许我们将特定类型的函数作为参数传递给find_all函数。唯一的限制是这些函数必须接受一个label对象作为参数,并返回一个布尔结果。BeautifulSoup使用这个函数对遇到的每个标签对象进行评估,最终保留评估结果为“true”的标签,拒绝其他标签。
例如,下面的代码将获取具有两个属性的所有标签:
bs.find_all(lambda标签:len(tag.attrs)==2)
这里,作为参数传入的函数是len(tag.attrs)==2。当该参数为真时,find_all函数将返回tag。即找出所有具有两个属性的标签,如下所示:
Lambda函数非常实用,你甚至可以用它来代替现有的BeautifulSoup函数:
bs . find _ all(lambda tag:tag . get _ text()==
或者他只是在休息?)
如果不使用Lambda函数,代码如下:
或者他只是在休息?)
如果你能记住Lambda函数的语法以及如何获取标签的属性,那么你可能再也不需要记住BeautifulSoup的语法了!
因为Lambda函数可以是任何返回True或False值的函数,所以您甚至可以将Lambda函数与正则表达式结合使用来查找与特定字符串模式匹配的属性标签。
这就是关于python Lambda表达式的全部内容。感谢您阅读和支持剧本之家。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。