如何高效实现Python不区分大小写的字符串列表包含检查?
忽略大小写检查字符串列表是否包含在目标字符串中的高效实现方法
我需要检查一个字符串列表中的每个元素是否包含在另一个目标字符串中,且匹配过程忽略大小写。
示例:
输入:'Hello World', ['he', 'o w'] 输出:[True, True] 输入:'Hello World', ['he', 'wol'] 输出:[True, False]
我自己写了一段实现代码:
output = [] for keyword in keywordlist: if keyword.lower() in string.lower(): output.append(True) else: output.append(False)
但这段代码存在两个问题:
- 时间复杂度问题:每次循环都重复对目标字符串调用
lower(),当关键词列表元素较多时,会产生大量冗余计算,效率低下 lower()方法的局限性:在部分包含特殊语言字符的场景中,lower()无法正确处理大小写转换(比如土耳其语的İ转换为小写不是i而是ı),可能导致匹配结果出错
我曾找到过类似的问题解决方案,但它不支持忽略大小写的匹配场景,想请教有没有更高效的实现方式?
内容的提问来源于stack exchange,提问作者Ahsan Tarique
相关产品推荐
相关产品推荐

