首頁 > 後端開發 > Python教學 > 如何高效替換字串中的多個字元?

如何高效替換字串中的多個字元?

DDD
發布: 2024-12-02 02:52:10
原創
981 人瀏覽過

How to Efficiently Replace Multiple Characters in a String?

替換字串中多個字元的最佳方法

原始問題:
如何有效地替換字串中的多個字符,如&-> &,#-> # 等等?

第一種方法(順序替換)

雖然提供的程式碼可以工作,但它涉及多個順序替換,這可能效率低下。

strs = strs.replace('&', '\&')
strs = strs.replace('#', '\#')
...
登入後複製

第二種方法(連結替換)

更有效的方法是將

text.replace('&', '\&').replace('#', '\#')
登入後複製

效能比較

測試效能比較

Method Time (μs per loop)
Chaining replacements 0.814

測試

效能比較

測試

效能比較
import re

rx = re.compile('([&#])')
text = rx.sub(r'\', text)
登入後複製

測試
def mk_esc(esc_chars):
    return lambda s: ''.join(['\' + c if c in esc_chars else c for c in s])
esc = mk_esc('&#')
text = esc(text)
登入後複製
效能比較

chars = "&#"
for c in chars:
    text = text.replace(c, "\" + c)
登入後複製
檢定:

替換字串abc&def#ghi中的字元&和#。

替代方法

各種其他方法可用於取代字元string:

使用正規則表達式

使用自訂轉義函數使用循環其他提示 最佳化速度(~2x改進)不再檢查輸入字串中每個字元是否存在,而是使用迭代器循環遍歷要替換的字元。這可以顯著提高效能。 使用 Python 3由於其更快的字串操作能力,Python 3 在字元替換任務中優於 Python 2。

以上是如何高效替換字串中的多個字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板