Python strip()多个字符?

Python strip()多个字符?,第1张

Python strip()多个字符?

我在这里进行了一次时间测试,每种方法循环使用了100000次。结果令我惊讶。(结果被编辑以响应评论中的有效批评后,仍然令我感到惊讶。)

这是脚本

import timeitbad_chars = '(){}<>'setup = """import reimport strings = 'Barack (of Washington)'bad_chars = '(){}<>'rgx = re.compile('[%s]' % bad_chars)"""timer = timeit.Timer('o = "".join(c for c in s if c not in bad_chars)', setup=setup)print "List comprehension: ",  timer.timeit(100000)timer = timeit.Timer("o= rgx.sub('', s)", setup=setup)print "Regular expression: ", timer.timeit(100000)timer = timeit.Timer('for c in bad_chars: s = s.replace(c, "")', setup=setup)print "Replace in loop: ", timer.timeit(100000)timer = timeit.Timer('s.translate(string.maketrans("", "", ), bad_chars)', setup=setup)print "string.translate: ", timer.timeit(100000)

结果如下:

List comprehension:  0.631745100021Regular expression:  0.155561923981Replace in loop:  0.235936164856string.translate:  0.0965719223022

其他运行的结果遵循类似的模式。但是,如果速度不是主要问题,我仍然认为

string.translate
它不是最易读的内容。其他三个更为明显,尽管程度有所不同



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5661607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存