Python在for循环中查找字符串速度太慢 -相关文档
使用正则表达式或者 Boyer-Moore 字符串搜索算法来替代普通的字符串查找方法。
在处理大量文本时,使用正则表达式可以提高查找字符串的速度。可以使用 re 模块中的 findall 函数来查找所有匹配的字符串。
代码示例:
import re
text = "hello world, hello python, hello java, hello c++" pattern = "hello"
matches = re.findall(pattern, text)
print(matches)
['hello', 'hello', 'hello', 'hello']
Boyer-Moore 字符串搜索算法是一种高效的字符串查找算法,它可以在最坏情况下实现线性时间复杂度。在 Python 中,可以使用第三方库 bm_search 来实现该算法。
代码示例:
from bm_search import BoyerMoore
text = "hello world, hello python, hello java, hello c++" pattern = "hello"
bm = BoyerMoore(pattern) matches = bm.search_all(text)
print(matches)
[(0, 5), (13, 18), (25, 30), (36, 41)]
以上两种方法都可以有效解决 Python 在 for 循环中查找字符串速度太慢的问题。