我有兩個列表:
- 一個大約 750K 的列表 “句子”(長字符串)
- 我想從我的 75 萬個句子中刪除大約 2 萬個“單詞”
所以,我有循環 750K sentences 並執行大約 20K 替換,但僅當我的單詞實際上是 “單詞” 並且不是更大字符串的一部分時。
我通過預編譯我的 單詞 來做到這一點,以便它們的兩側是 單詞邊界元字符:
compiled_words = [re.compile(r"" + word + r"") for word in my20000words]
然後我循環遍歷我的" sentence":
import re for sentence in sentence: for word in compiled_words: sentence = re.sub(word, "", sentence) # 把句子放入一個不斷增長的list
這個嵌套循環正在處理大約50句es per second,這很好,但是處理我所有的句子仍然需要幾個小時。
有沒有辦法使用
str. replace
方法(我認為它更快),但仍然要求替換只發生在 單詞邊界?或者,有沒有一種加快
re.sub
方法的方法?如果我的單詞的長度是>,我已經通過跳過re.sub
略微提高了速度。比我句子的長度,但它並沒有太大的改進。
我正在使用 Python 3.5.2