9
在Python 3中加速数百万个正则表达式的替换
我正在使用Python 3.5.2 我有两个清单 大约750,000个“句子”(长字符串)的列表 我想从我的750,000个句子中删除的大约20,000个“单词”的列表 因此,我必须遍历750,000个句子并执行大约20,000个替换,但前提是我的单词实际上是“单词”,并且不属于较大的字符串。 我这样做是通过预编译我的单词,使它们位于\b元字符的侧面 compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words] 然后我遍历我的“句子” import re for sentence in sentences: for word in compiled_words: sentence = re.sub(word, "", sentence) # put sentence into a growing list 这个嵌套循环每秒处理大约50个句子,这很好,但是处理我所有的句子仍需要几个小时。 有没有一种方法可以使用该str.replace方法(我认为该方法更快),但仍然要求仅在单词边界处进行替换? 或者,有没有办法加快该re.sub方法?re.sub如果单词的长度大于句子的长度,我已经略微提高了速度,但这并没有太大的改进。 感谢您的任何建议。