国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python中Lambda表達式詳解

2020-02-15 21:30:08
字體:
來源:轉載
供稿:網友

如果你在學校讀的是計算機科學專業,那么可能學過 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表達式的相關知識點內容,感謝大家的閱讀和對武林站長站的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 出国| 莫力| 辽阳县| 柳河县| 济源市| 东阳市| 赤城县| 北安市| 民勤县| 禹城市| 南开区| 长岛县| 黄龙县| 察隅县| 灌南县| 从江县| 贵南县| 太仆寺旗| 荥经县| 犍为县| 呼和浩特市| 新宁县| 兴业县| 寻乌县| 皋兰县| 绥宁县| 成武县| 温泉县| 驻马店市| 呈贡县| 印江| 永嘉县| 绥江县| 曲周县| 秦皇岛市| 南澳县| 天峨县| 平度市| 肃宁县| 盘锦市| 布尔津县|