最佳答案
我试图在 Python 3.4中使用 text.translate()
从给定的字符串中删除不需要的字符。
最小的代码是:
import sys
s = 'abcde12345@#@$#%$'
mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$')
print(s.translate(mapper))
它的工作原理和预期的一样,但是在 Python 3.4和 Python 3.5中执行相同的程序会产生很大的不同。
计算时间的代码是
python3 -m timeit -s "import sys;s = 'abcde12345@#@$#%$'*1000 ; mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$'); " "s.translate(mapper)"
Python 3.4程序采用 < em > 1.3 ms ,而 Python 3.5中的同一程序只采用 < em > 26.4 μs 。
与 Python 3.4相比,Python 3.5有哪些改进使其运行速度更快?