小编典典

在Python中执行多个字符串替换的最快实现

python

除了replace对一个字符串进行链接(即text.replace(a, b).replace(c, d).replace(e, f)...)以外,是否有其他建议的方法来进行多个字符串替换?例如,您将如何实现行为类似于htmlspecialcharsPython中的PHP的快速功能?

我比较了(1)多种replace方法,(2)正则表达式方法和(3)Matt Anderson方法。

在n = 10次运行时,结果如下:

在100个字符上:

时间:0毫秒[replace_method(str)]
时间:5毫秒[regular_expression_method(str,dict)]
时间:1毫秒[matts_multi_replace_method(list,str)]

在1000个字符上:

时间:0毫秒[replace_method(str)]
时间:3毫秒[regular_expression_method(str,dict)]
时间:2毫秒[matts_multi_replace_method(list,str)]

在10000个字符上:

时间:3毫秒[replace_method(str)]
时间:7毫秒[regular_expression_method(str,dict)]
时间:5毫秒[matts_multi_replace_method(list,str)]

在100000个字符上:

时间:36毫秒[replace_method(str)]
时间:46毫秒[regular_expression_method(str,dict)]
时间:39毫秒[matts_multi_replace_method(list,str)]

在1000000个字符上:

时间:318毫秒[replace_method(str)]
时间:360毫秒[regular_expression_method(str,dict)]
时间:320毫秒[matts_multi_replace_method(list,str)]

在3687809个字符上:

时间:1.277524秒[replace_method(str)]
时间:1.290590秒[Regular_expression_method(str,dict)]
时间:1.116601秒[matts_multi_replace_method(list,str)]

对于replace在相当大的输入字符串上击败multi方法,Matt表示敬意。

有人有想法在较小的琴弦上击败它吗?


阅读 209

收藏
2020-12-20

共1个答案

小编典典

通常,.replace方法胜过所有其他方法。(请参阅上面的基准。)

2020-12-20