python中Lambda表達式詳解
如果你在學(xué)校讀的是計算機科學(xué)專業(yè),那么可能學(xué)過 Lambda 表達式, 不過可能從來沒有用過它。如果你不是計算機科學(xué)專業(yè),它們看著可能 有點兒陌生(或者只是“曾經(jīng)學(xué)習(xí)過的東西”)。在這一節(jié)里,雖然我們 不打算深入學(xué)習(xí)這類函數(shù),但是會用幾個例子來演示它們是如何用在網(wǎng) 頁抓取中的。
Lambda 表達式本質(zhì)上就是一個函數(shù),可以作為變量傳入另一個函數(shù); 也就是說,一個函數(shù)不是定義成 f(x, y),而是可以定義成 f(g(x), y) 或 f(g(x), h(y)) 的形式。 BeautifulSoup 允許我們把特定類型的函數(shù)作為參數(shù)傳入 find_all 函 數(shù)。唯一的限制條件是這些函數(shù)必須把一個標簽對象作為參數(shù)并且返回 布爾類型的結(jié)果。BeautifulSoup 用這個函數(shù)來評估它遇到的每個標簽對 象,最后把評估結(jié)果為“真”的標簽保留,把其他標簽剔除。
例如,下面的代碼就是獲取有兩個屬性的所有標簽:
bs.find_all(lambda tag: len(tag.attrs) == 2)
這里,作為參數(shù)傳入的函數(shù)是 len(tag.attrs) == 2。當該參數(shù)為真 時,find_all 函數(shù)將返回 tag。即找出帶有兩個屬性的所有標簽,如 下所示:
<div class="body" id="content"></div> <span style="color:red" class="title"></span>
Lambda 函數(shù)非常實用,你甚至可以用它來替代現(xiàn)有的 BeautifulSoup 函 數(shù):
bs.find_all(lambda tag: tag.get_text() == 'Or maybe he\'s only resting?')
如果不使用 Lambda 函數(shù),代碼如下:
bs.find_all('', text='Or maybe he\'s only resting?')
如果你能記住 Lambda 函數(shù)的語法,以及如何獲取標簽的屬性,那么你 可能再也不需要記住 BeautifulSoup 的語法了!
由于 Lambda 函數(shù)可以是任意返回 True 或者 False 值的函數(shù),你甚至 可以結(jié)合使用 Lambda 函數(shù)與正則表達式,來查找匹配特定字符串模式 的屬性的標簽。
以上就是關(guān)于python Lambda表達式的相關(guān)知識點內(nèi)容,感謝大家的閱讀和對腳本之家的支持。
相關(guān)文章
在Python中利用Bokeh創(chuàng)建動態(tài)數(shù)據(jù)可視化
在本文中,我們探討了如何利用 Bokeh 庫在 Python 中創(chuàng)建動態(tài)數(shù)據(jù)可視化,我們介紹了 Bokeh 的基本概念和優(yōu)勢,以及如何安裝 Bokeh 庫,對在Python中利用Bokeh創(chuàng)建動態(tài)數(shù)據(jù)可視化相關(guān)知識感興趣的朋友跟隨小編一起看看吧2024-05-05
使用Pytorch實現(xiàn)Swish激活函數(shù)的示例詳解
激活函數(shù)是人工神經(jīng)網(wǎng)絡(luò)的基本組成部分,他們將非線性引入模型,使其能夠?qū)W習(xí)數(shù)據(jù)中的復(fù)雜關(guān)系,Swish 激活函數(shù)就是此類激活函數(shù)之一,在本文中,我們將深入研究 Swish 激活函數(shù),提供數(shù)學(xué)公式,探索其相對于 ReLU 的優(yōu)勢,并使用 PyTorch 演示其實現(xiàn)2023-11-11
python使用ctypes調(diào)用第三方庫時出現(xiàn)undefined?symbol錯誤詳解
python中時間的庫有time和datetime,pandas也有提供相應(yīng)的時間處理函數(shù),下面這篇文章主要給大家介紹了關(guān)于python使用ctypes調(diào)用第三方庫時出現(xiàn)undefined?symbol錯誤的相關(guān)資料,需要的朋友可以參考下2023-02-02
python使用epoll實現(xiàn)服務(wù)端的方法
今天小編就為大家分享一篇python使用epoll實現(xiàn)服務(wù)端的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
python為Django項目上的每個應(yīng)用程序創(chuàng)建不同的自定義404頁面(最佳答案)
這篇文章主要介紹了python為Django項目上的每個應(yīng)用程序創(chuàng)建不同的自定義404頁面,本文給出了最佳答案,大家可以跟隨小編一起學(xué)習(xí)下2020-03-03
Python構(gòu)造自定義方法來美化字典結(jié)構(gòu)輸出的示例
這篇文章主要介紹了用Python構(gòu)造自定義方法來美化字典結(jié)構(gòu)輸出的示例,原理就是利用遞歸法來拼接字符串,需要的朋友可以參考下2016-06-06

