Checking String Element Existence in a List in Python
这个问题寻求一种优雅的方法来确定字符串是否包含指定的元素不使用 for 循环的列表。以下代码举例说明了该问题:
<code class="python">extensionsToCheck = ['.pdf', '.doc', '.xls'] for extension in extensionsToCheck: if extension in url_string: print(url_string)</code>
用户尝试使用逻辑 OR 运算符(如 C/C 中),未能提供所需的结果。
优雅的解决方案使用生成器和 Any
更复杂的解决方案利用生成器和 Any 函数,只要在字符串中找到列表中的任何元素,该函数就会计算为 True:
<code class="python">if any(ext in url_string for ext in extensionsToCheck): print(url_string)</code>
在此代码中,生成器表达式生成一系列布尔值,指示 extensionsToCheck 中的每个元素是否存在于 url_string 中。如果这些布尔值中的任何一个为 True,则 any 函数将返回 True。
检查结束位置时的注意事项
需要注意的是,此解决方案并未考虑url_string 中匹配字符串的位置。例如,如果列表包含 .com 并且正在检查的字符串是 example.company.com,则即使 .com 出现在字符串中间,解决方案也会返回 True。
如果该字符串的精确位置匹配字符串是一个问题,因为它通常与 URL 一起使用,请考虑利用 @Wladimir Palant 提供的解决方案,其中涉及检查 URL 上下文中的文件扩展名。
以上是如何在Python中有效地检查字符串是否包含列表中的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!