【问题标题】:Python lambda with OR criteria [duplicate]具有 OR 标准的 Python lambda [重复]
【发布时间】:2022-01-18 21:47:39
【问题描述】:

我有一段其他功能正常的代码,这感觉是一个非常简单的问题,但我想不通:

下面的代码使用来自网络抓取的 HTML 元素列表,然后打印其中包含“THIS”的元素。完美运行。

现在如何让它用“或”过滤,例如用“THIS”或“THAT”或“THOSE”过滤?

我尝试将“THIS”替换为“THIS”或“THAT”或“THOSE”,但由于某种原因,即使没有“THIS”、“THAT”或“THOSE”,它也会开始传递值。

感谢您的帮助!

lst = [ x.text for x in span_elements ]

#THIS PIECE OF CODE
filtered_list = list(filter(lambda k: 'THIS' in k, lst))

print(filtered_list)

【问题讨论】:

  • 'THIS' in k or 'THAT' in k or 'THOSE' in k

标签: python filtering


【解决方案1】:

您可以在同一行中进行过滤和提取:

words = ("THIS", "THAT", "THOSE")
lst = [ x.text for x in span_elements if any(word in x.text for word in words)]

【讨论】:

  • 括号是多余的。
  • @OlvinR​​oght 在我看来更清晰。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 2010-10-24
相关资源
最近更新 更多