Skip to main content
 首页 » 编程设计

Python:子串存在

2025年05月04日15tuyile006

我有一个 HTML 抓取工具,它解析一组特定的网站以获取所售产品的名称。如果产品在我们的白名单中,我们处理它的方式与不在白名单中的产品不同。 现在刮板返回产品的全名。可能是“Nike Air Jordan”或“Air Jordan by Nike”或“LunarEpic by Nike”等等,但耐克在我们的白名单中。 所以我现在正在做的是一个简单的或检查:

>>> product_name = get_prod_name(url) 
>>> if 'Nike' in product_name: 
       do_process() 

现在我们得到了这些列入白名单的产品的列表,例如 ['Nike'、'Reebok'、'Adidas'...] 除了

之外,是否有更好的方法来执行此检查
if 'Nike' in product_name or 'Reebok' in product_name or 'Adidas' in product_name 

? TX,克雷格

请您参考如下方法:

您可以使用内置的 any 函数:

products = ['Nike', 'Reebok', 'Adidas', ...] 
if any(product in product_name for product in products): 
    ... 

另一种选择是使用正则表达式:

regex = '|'.join(re.escape(product) for product in products)) 
if re.search(regex, product_name): 
   ... 

但这几乎可以肯定是矫枉过正......