python - 如何使用 lambda 搜索多个单词

标签 python html python-3.x lambda

我正在 HTML 源代码中搜索具有 "up""down" 的行。只需要一个字,代码就可以工作。但是如果我想搜索包含多个单词的行,如何在 Python 3.4.2 中做到这一点?

links = lambda tag: getattr(tag, 'name', None) == 'a' and 'up|down' in tag.get_text().lower() and 'href' in tag.attrs

最佳答案

您始终可以创建常规函数,而不是简短的 lambda 形式。

定义要在标签文本中检查的单词列表并使用 any() + in检查文本中是否存在单词:

stop_words = ['up', 'down']
def filter_links(tag):
    if getattr(tag, 'name', None) == 'a' and 'href' in tag.attrs:
        text = tag.get_text().lower()
        return any(item in text for item in stop_words) 
    return False

关于python - 如何使用 lambda 搜索多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740158/

相关文章:

Python识别数字在哪个区间

python - 在 Python 中定义一个带有可选参数的类

jquery - HTML5 WebSQL : how to know when a db transaction finishes?

html - 显示 :none/Display:block with Combined Sibling Selectors

python - 使用装饰器恢复生成器

python - 基于三列将一个 Pandas 数据框中的行与另一个数据框匹配

python - 在使用 Flask url : (35) schannel: next InitializeSecurityContext failed 的 REST API 的curl URL 期间出现问题

html - 如何将背景设置在另一个背景图像后面?

python - 如何按索引顺序拆分 pandas.DataFrame?

python - PriorityQueue 按对象属性排序