我只是出于好奇而对某些功能进行了计时。在这些测试中,我从字符串
string.printable(内置
string模块的一部分)中删除了非字母数字字符。发现使用已编译
'[W_]+'和
pattern.sub('', str)最快。$ python -m timeit -s "import string" "''.join(ch for ch in string.printable if ch.isalnum())" 10000 loops, best of 3: 57.6 usec per loop$ python -m timeit -s "import string" "filter(str.isalnum, string.printable)" 10000 loops, best of 3: 37.9 usec per loop$ python -m timeit -s "import re, string" "re.sub('[W_]', '', string.printable)"10000 loops, best of 3: 27.5 usec per loop$ python -m timeit -s "import re, string" "re.sub('[W_]+', '', string.printable)" 100000 loops, best of 3: 15 usec per loop$ python -m timeit -s "import re, string; pattern = re.compile('[W_]+')" "pattern.sub('', string.printable)" 100000 loops, best of 3: 11.2 usec per loop


